【发布时间】:2019-06-20 19:34:53
【问题描述】:
在使用或省略括号时调用方法的正确方法是什么?如果我正确理解我的谷歌搜索结果:在将方法(或函数)的返回值分配给变量时,您必须使用括号。下面是一些例子:
wbData.Sheets.Add '-> worksSet wsData = wbData.Sheets.Add '-> workswbData.Sheets.Add(Before:=wbData.Sheets(wbData.Sheets.Count)) '-> syntax errorSet wsData = wbData.Sheets.Add(Before:=wbData.Sheets(wbData.Sheets.Count)) '-> workswbData.Sheets.Add Before:=wbData.Worksheets(wbData.Worksheets.Count) '-> worksSet wsData = wbData.Sheets.Add Before:=wbData.Worksheets(wbData.Worksheets.Count) '-> syntax error
只是为了确保我得到了 VBA 逻辑:#3 给了我一个错误,因为 VBA 的括号意味着值(= 新工作表)被返回,但是没有变量可以分配给它? #6是相反的情况?
即使我的解释尝试是正确的,有人可以向我解释why the example on the official help page 对我不起作用:
ActiveWorkbook.Sheets.Add(Before:=Worksheets(Worksheets.Count))
这给了我一个语法错误,与上面列表中的 #3 相同。对此我感到很困惑。
【问题讨论】:
-
根据我的经验,当您使用参数设置对象/变量时需要
() -
@DavidZemens - 该链接指向“Office VBA 参考”...
-
他们的参考/示例错误或包含错误信息也不是第一次了 :)
-
@DavidZemens - 好点:我没有注意到“VB”标签
-
我真的不知道。可能不是。就像我上面提到的,它们都曾经是 VB 或 C#,而 VB 的对 VBA 来说准确率为 99%。我只是听听 Tim 的最后评论:需要注意的一点是,当 Vb 编辑器在方法名称和左括号之间放置一个空格时——如果发生这种情况,这表明你可能根本不需要括号.