因此,我试图基于For Each
循环来获取所选单元格的单元格地址。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim company As String
company = Range("H12").Value
Dim companyRange, cell As Range
companyRange = ThisWorkbook.Sheets("Bleh List").Range("A2:A20")
For Each cell In companyRange
If cell.Value <> vbNullString And cell.Value = company Then
Debug.Print "C : " & cell.Row
End If
Next cell
Application.EnableEvents = True
End Sub
但是,每次我尝试运行此代码时,都会在循环的第一行返回Object required
错误。
创建这个问题本来应该是那么琐碎>为什么?
谢谢!
答案 0 :(得分:3)
这是一个常见的误解:
Dim companyRange, cell As Range
只有cell
是Range
。 companyRange
是Variant
。您需要:
Dim companyRange as Range, cell as Range
那么您就错过了Set
。
Set companyRange = ThisWorkbook.Sheets("Bleh List").Range("A2:A20")
当前,companyRange = ThisWorkbook.Sheets("Bleh List").Range("A2:A20")
是2D Variant数组,而不是您希望对其进行迭代的Range
对象。