如何在 VBA countif 函数中引用多个工作表中的范围?

How to reference range in multiple sheets in VBA countif function?

Vba 初学者。我有一个名为“Dane”的工作簿,其中有 worksheets,必须在每个工作簿中搜索特定行。这些行不能包含我的宏工作簿中 A 列的值,并且将在特定列中以“1”突出显示。我使用了嵌套循环——外面用于 worksheets,里面用于行。问题是:1只出现在第一个sheet。当我在 'prodRange(x, 1)' 之前添加 'Dane.Worksheets(i).' 时,出现错误“对象不支持 属性 或方法”。

Dim Dane As Workbook
Set Dane = Workbooks("something.xlsx")
Dim prodRange As Range
Set prodRange = Range("A18:I92")

For i = 4 To 23
       Dane.Worksheets(i).Activate
       For x = 2 To 75
         If Application.WorksheetFunction.CountIf(ThisWorkbook.Sheets("Top").Range("A:A"), prodRange(x, 1)) = 0 Then
         prodRange(x, 1).Offset(0, 17) = 1
         End If
       Next
Next

当你:

Set prodRange = Range("A18:I92")

父级 sheet 已设置。它设置为在设置对象时处于活动状态的 sheet。

所以把它移到第一个循环中。

Dim Dane As Workbook
Set Dane = Workbooks("something.xlsx")

For i = 4 To 23
    Dim prodRange As Range
    Set prodRange = Dane.Worksheets(i).Range("A18:I92")
    For x = 2 To 75
        If Application.WorksheetFunction.CountIf(ThisWorkbook.Sheets("Top").Range("A:A"), prodRange(x, 1)) = 0 Then
        prodRange(x, 1).Offset(0, 17) = 1
        End If
    Next
Next