【发布时间】:2015-06-16 10:15:27
【问题描述】:
我正在尝试在 VBA 中为 Excel 2011 编写一个程序,该程序可以在列(由另一个变量确定的列)中搜索数字 1,以便它知道从哪里开始迭代。
假设列号由colnumvar 给出。我能想到的唯一方法是 Match 函数,这导致我写了以下内容:
Dim rowvar As Integer
rowvar = WorksheetFunction.Match(1,Range(Cells(1,colnumvar),Cells(1000,colnumvar)),0)
然而,这给了我一个错误。玩了一会儿之后,我意识到它一定不能接受Cells([row],[col])的做法,而是想要Range("A1:A100")这样的东西。不幸的是,我不能那样做,因为程序正在确定要查看的列。任何帮助弄清楚如何克服这一点将不胜感激!
【问题讨论】:
-
运行代码时
colnumvar的值是多少? -
它是一个值变化的整数......它总是1、3、5、7、9、11、13或15。关键是代码应该是健壮的,所以我不能只告诉它该做什么列,如果这有意义的话哈哈:P
-
尝试将 .address 放在您的范围和单元格之后,以确保您提供的是匹配函数地址而不是值
-
我刚刚尝试过,它告诉我以下内容存在语法错误:
BorradorVar = WorksheetFunction.Match(1, Sheets("Usuarios").Range(Cells(1, ColumnaNumVar, Cells(1000, ColumnaNumVar)).Address, 0)。ColumnaNumVar是我上面写的colnumvar。 -
你不认为 1 找不到因此你得到一个错误吗?
Range (cells (),cells ())是正确的语法。
标签: vba excel match worksheet-function