Word合并后隐藏表格零值的问题求助
Word合并后隐藏表格零值的问题求助
各位大佬好,我目前在用一个连接Maximizer在线CRM的Word COM加载项,用来实现Word文档的字段合并功能,但遇到了一个零值隐藏的棘手问题,想请教下有没有靠谱的解决思路。
问题详情
我用格式开关 # "$#,##0.00;($#,##0.00)" 来处理数值显示,发现如果合并的字段是**空白(无任何值)时,这个开关能正常把它隐藏;但如果是CRM里的公式字段返回0(零)**时,这个开关完全不起作用,还是会显示出0的数值格式。
我尝试过的几种方法(均未成功)
- 尝试在Word表格里用辅助单元格合并数值,再用Word公式插入目标单元格:
- 第一种公式写法,当B1值为0时直接报语法错误:
{ =if(sum(Table2 B1:B1)=0,"", sum(Table2 B1:B1)) \# "$#,##0.00;($#,##0.00)" } - 把空字符串换成0的写法,结果会显示可见的
$ 0.00,达不到隐藏效果:{ =if(sum(Table2 B1:B1)=0,0, sum(Table2 B1:B1)) \# "$#,##0.00;($#,##0.00)" }
- 第一种公式写法,当B1值为0时直接报语法错误:
- 试过把格式开关改成
###.##,但像325.00这种数值会显示成325,不符合我需要保留两位小数的要求,所以这个方案不行。 - 修改合并字段的代码:原本的合并字段是
我改成带格式开关的版本:{ DOCPROPERTY UO.QuickbooksschrxfbkTotalsschrxfbkTotalschrx0020Lineschrx00201 \* MERGEFORMAT }
结果还是一样,0值依然会显示出来。{ DOCPROPERTY UO.QuickbooksschrxfbkTotalsschrxfbkTotalschrx0020Lineschrx00201 \# "##,##0.00;(##,##0.00)" }
目前找到的临时 workaround
后来我换了个思路,不在Word里做处理,直接在CRM那边改逻辑:把原本的数值型公式UDF改成字符型的,用if+text函数做判断,写法如下:
if(text(MyFormula)=="0","",text(MyFormula))
这样处理后,CRM里的0值传到Word里就变成空白了,算是解决了当前的问题,但总觉得有点绕,不是最理想的方案。
如果各位有更直接的Word端解决方法,或者更优雅的思路,麻烦分享一下~ 如果没人提供更好的答案,我之后会把这个 workaround 整理成正式答案。
备注:内容来源于stack exchange,提问作者DryBSMT
相关产品推荐
相关产品推荐

