如何在 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
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