问题描述
Vba初学者在这里。我有一个名为“ Dane”的工作簿,其中有工作表,必须在每个工作表中搜索特定的行。这些行不能包含我的宏工作簿的A列中的值,并且将在特定列中以“ 1”突出显示。我使用嵌套循环-外部用于工作表,内部用于行。问题是:1仅在第一张纸上显示。当我添加'Dane.Worksheets(i)'时。在“ prodRange(x,1)”错误“对象不支持属性或方法”之前发生。
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")
已设置父表。设置为在设置对象时处于活动状态的工作表。
因此将其移入第一个循环。
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