excel - 当我将此代码放入循环时,如何管理双引号?
问题描述
在 SO 上,我只得到了两个答案,它们在一次调用时都有效。现在我想把它们放在一个循环中并循环几行数据。但是,我有很多时间让代码正确。我怀疑这与我如何处理双引号有关。
独立代码行如下。
Var = ActiveSheet.Evaluate("And(A1:F1)")
和Var = Application.WorksheetFunction.And(Range("A1:F1"))
对于我尝试的第一个示例:
for i = 2 to 20
Var = ActiveSheet.Evaluate("And(A & i & :F & i)")
Next i
这会产生“错误 2015”
第二个:
for i = 2 to 20
Var = Application.WorksheetFunction.And(Range("A" & i & ":F" & i))
Next i
这会产生一行红色代码
我究竟做错了什么?
解决方案
Visual Basic 编辑器使这变得比它应该的更难,因为它的默认语法突出显示使字符串文字与标识符具有相同的颜色:
您可以在工具/选项下更改它,并将标识符文本设置为不同的颜色 - 这里是青色:
现在字符串文字仍然是黑色的,但现在标识符在视觉上看起来很独特:
您要确保的是,您的变量像标识符一样是语法高亮的 - 所以它们是蓝绿色的,而不是黑色的 - 就像在您的第二个示例中一样:
与您的第一次尝试相比,其中i
没有将语法高亮显示为应为的标识符:
并且由于您知道这i
是一个 VBA 变量,并且您希望VBA 将其值连接到该字符串中,因此i
作为任何其他字符串文字(而不是作为标识符)被语法高亮显示是您的视觉提示,有些东西已经关闭了!
由于标识符文本在编辑器中具有与字符串文字不同的语法突出显示,因此可以更轻松地快速定位意外出现在字符串文字中的变量。
第一个片段不起作用,因为ActiveSheet.Evaluate
它接受了它的参数并将其提供给 Excel 的表达式评估引擎,......它不知道如何处理 this i
。变量i
只存在于 VBA 代码的执行上下文中:只有 VBA 代码可以评估它的值。
推荐阅读
- haskell - 如何编写 Continuation Monad 的 Functor 实例?
- php - 使用php中的ID根据查询输出输出不同的表
- java - 如何检查Android中缺少任何类?
- python-3.x - boto3 模块安装在 conda 虚拟环境中,但获取模块不可用
- javascript - 如何在 Angular 中创建月份范围选择器
- string - 大会 x86:LEA 和 MOVSB 更改了我的源字符串?
- julia - 在 Catalina 机器上安装 Julia 0.6.4
- switch-statement - 如何在switch语句中使用变量
- jquery - Svelte 和 Jquery - Dropdown.svelte:7 Uncaught TypeError: jquery(...).dropdown is not a function
- python - 用不同的填充符号填充其他多边形内的多边形