特定列中的匹配函数 Excel VBA

Match Function in Specific Column Excel VBA

我正在尝试在 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") 之类的东西。不幸的是,我不能那样做,因为程序正在确定要查看的列。非常感谢任何帮助找出如何克服这个问题的帮助!

Range.Find 可以更好地满足您的要求。

Dim rngtrg As Range, rngsrc As Range
Dim ws As Worksheet
Set ws = ActiveSheet
Set rngsrc = ws.Range(ws.Cells(1,colnumvar),ws.Cells(1000,colnumvar))
Set rngtrg = rngsrc.Find(1,...)
rowvar = rngtrg.Row

这个简单的函数检索您找到的位置


Function rowvar(ByRef c As Integer) As Integer
    Dim keySrc As Integer
    keySrc = 22 'wath you want to find
    rowvar = WorksheetFunction.Match(keySrc, Range(Cells(1, c), Cells(1000, c)), 0)
End Function

与 rowvar(x) 一起使用