我有一些代码在工作簿的 sheet1 中搜索字符串“dog”,该字符串可以在工作表中出现多次,如果在这些列中找到该字符串,它会给我一个列号向量,(dog 可以每列只出现一次)。我在工作表上有一个按钮,我分配了这个宏:
Option Explicit
Sub mymacro2()
Dim dog() As Integer
Dim coldog As Range
Set coldog = Sheets(1).UsedRange.Find("dog", , xlValues, xlWhole)
Dim i As Integer
i = 0
ReDim dog(0)
dog(i) = coldog.Column
Do
i = i + 1
ReDim Preserve dog(i)
Set coldog = Sheets(1).UsedRange.FindNext(coldog)
dog(i) = coldog.Column
Loop While dog(i) <> dog(0)
ReDim Preserve dog(i - 1)
Sheets(1).Cells(1, 1).Resize(1, UBound(Application.Transpose(dog))) = dog
'above line is displaying the vector on the sheet for testing purposes
Set coldog = Nothing
ReDim dog(0)
End Sub
宏给了我想要的向量,即它告诉我在哪些列中可以找到字符串“dog”。
现在,我想修改代码或创建一个全新的代码,它对 sheet2 上第 1 列中的字符串列表中的每个字符串执行相同的操作。所有具有列号的向量必须与具有列信息的字符串具有相同的名称。就像我在上面的代码中手动做的那样。
关键是我有一个大约 130 只动物的清单,我需要为它们做同样的事情。在 Excel VBA 中这样做的最佳方法是什么?