尝试格式化此数字时,我总是收到错误消息。之前,我已经在VBA中完成了此操作,然后尝试将SOPID更改为变量,字符串和整数。
#line
我不知道我在做什么错
假设代码直接从您的IDE中粘贴,则format
的大小写可疑;除非存在范围内的Format
变量或函数,否则它将为format
。
寻找公共对象(可能是隐含 Public
,或者如果它在同一模块中,那么它也可能是Private
)format
函数过程需要一个数组参数:很可能在这里被调用。
Rubberduck(免费,开源;我管理这个项目)可以帮助您轻松准确地识别正在调用的内容,并且检查会告诉您任何shadowed declarations,但请确保您可以完全-qualify函数调用,以避免无意中调用范围内的另一个函数:
MsgBox VBA.Strings.Format$(SOPID,"000")
请注意,在VBA中,参数化过程调用的参数列表周围没有括号;括起来的圆括号括在第一个参数周围,并使表达式被评估为一个值,然后将该值传递给调用的函数:这不是必需的。
还要注意$
:VBA.Strings.Format
函数采用并返回Variant
; VBA.Strings.Format$
接受并返回String
。如果您不处理任何Null
值(Integer
不能为Null
),请考虑使用String
-返回别名。