Excel 在范围内循环的每个循环中需要的对象

Excel 在范围内循环的每个循环中需要的对象,excel,vba,Excel,Vba,因此,我试图根据每个循环的,获取所选单元的单元地址 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

因此,我试图根据每个循环的
,获取所选单元的单元地址

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
Private子工作表\u更改(ByVal目标作为范围)
Application.EnableEvents=False
把公司当作字符串
公司=范围(“H12”).值
Dim companyRange,单元格作为范围
companyRange=ThisWorkbook.Sheets(“Bleh列表”).Range(“A2:A20”)
对于companyRange中的每个单元格
如果cell.Value vbNullString和cell.Value=company,则
调试。打印“C:”&单元格。行
如果结束
下一个细胞
Application.EnableEvents=True
端接头
但是,每次我尝试运行此程序时,循环的第一行都会返回一个
objectrequired
错误

本该如此琐碎的是什么造成了这个问题>为什么


谢谢

这是一个常见的误解:

Dim companyRange, cell As Range
只有
单元格
范围
companyRange
是一个
变体
。你需要:

Dim companyRange as Range, cell as Range
那么您就缺少了一个

Set companyRange = ThisWorkbook.Sheets("Bleh List").Range("A2:A20")

目前,
companyRange=thiswook.Sheets(“Bleh List”).Range(“A2:A20”)
是一个2D变量数组,而不是您希望迭代的
Range
对象。

这是一个常见的误解:

Dim companyRange, cell As Range
只有
单元格
范围
companyRange
是一个
变体
。你需要:

Dim companyRange as Range, cell as Range
那么您就缺少了一个

Set companyRange = ThisWorkbook.Sheets("Bleh List").Range("A2:A20")

目前,
companyRange=thiswook.Sheets(“Bleh List”).Range(“A2:A20”)
是一个2D变量数组,而不是您希望迭代的
Range
对象。

准确地说,要更好地理解变量发生了什么,只需将它们拖到
watchs
窗口中。它将告诉您这些变量的行为方式。:)@JvdV是的:(我总是使用上下文菜单添加它们。但是拖动要容易得多,所以我觉得自己很愚蠢。@Pᴇʜ,和BigBen你们两个家伙让我有一个哈哈的时刻,如果它归结到VBA的基础上,哈哈,所以这一切都很好。知识共享:)准确地说,为了更好地了解你的变量发生了什么,只需将它们拖到
手表
窗口。它将告诉您这些变量的行为方式。:)@JvdV是的:(我总是使用上下文菜单添加它们。但是拖动要容易得多,所以我觉得自己很愚蠢。@Pᴇʜ和BigBen你们两个家伙让我有一个哈哈的时刻,如果它归结到VBA的定期基础上哈哈,所以一切都很好。知识共享:)