Vba 赋值两次

Vba 赋值两次,vba,ms-word,Vba,Ms Word,我正在为Word处理一个旧的宏文件,自从最初的开发人员停止处理该文件后,我一直在维护它。VBA脚本包含一个计算脚本,该脚本使用editfields(来自表单)中的值从插入的小时数中得出最终总和,然后将其放入Word文档中的表中,如下所示: Total hours 8 + 0,5 uur administration = 8,5 hours 但是,当用户从表单编辑字段中删除该值并再次按“计算”时,该值仍在内存中,不会被覆盖。但是:有一种解决方法,如果我先将表单值更改为0.00,然后删除该行,则公

我正在为Word处理一个旧的宏文件,自从最初的开发人员停止处理该文件后,我一直在维护它。VBA脚本包含一个计算脚本,该脚本使用editfields(来自表单)中的值从插入的小时数中得出最终总和,然后将其放入Word文档中的表中,如下所示:

Total hours 8 + 0,5 uur administration = 8,5 hours
但是,当用户从表单编辑字段中删除该值并再次按“计算”时,该值仍在内存中,不会被覆盖。但是:有一种解决方法,如果我先将表单值更改为0.00,然后删除该行,则公式会更改

现在,我想将此过程自动化,并且部分成功:

If txtInspectieUren4 = "" Then txtInspectieUren4 = "0.00" //works!
但我不希望“0.00”在Word文档中可见,因此我添加了以下内容:

If txtInspectieUren4 = "" Then txtInspectieUren4 = "0.00" //works!
If txtInspectieUren4 = "0.00" Then txtInspectieUren4 = "" //Can I get the "" back after assigning "0.00"?
所以你加了“这个”。。。然后呢

这在很大程度上取决于这些表单字段的属性是如何设置的,而您并没有这样说。如果txtInspectieUren4设置为数字,则它不能包含空字符串并正确计算-听起来好像这就是问题所在

我会尝试使用SET字段在文档中创建书签。让代码将正确的值(数字或0)写入书签,并在计算中使用此书签,而不是可能显示或不显示数字的表单字段

SET字段类似于:{SET bookmarkName bookmarkValue}

更改它的代码:ActiveDocument.Fields([index]).Code.Text=“SET bookmarkName BookmarkValue”

当formfields用于计算和引用其他表单字段时,它们实际上引用表单字段的书签名称,并且它们可以引用文档中的任何书签,而不仅仅是表单字段