Algorithm 运行时错误1004:excel vba中的应用程序定义或对象定义错误
我是VBA新手,正在尝试运行宏来比较两列,并标记重复项和唯一值 下面是我试图运行的宏:Algorithm 运行时错误1004:excel vba中的应用程序定义或对象定义错误,algorithm,vba,excel,Algorithm,Vba,Excel,我是VBA新手,正在尝试运行宏来比较两列,并标记重复项和唯一值 下面是我试图运行的宏: Sub Mark_Duplicates() Dim Wks As Worksheet : Wks = Sheets("Sheet1") Dim i As Integer, j As Integer, k As Integer For i = 2 To 1000 j = Application.WorksheetFunction.CountIf(Range("C2
Sub Mark_Duplicates()
Dim Wks As Worksheet : Wks = Sheets("Sheet1")
Dim i As Integer, j As Integer, k As Integer
For i = 2 To 1000
j = Application.WorksheetFunction.CountIf(Range("C2:C1000"), Wks.Range("C" & i).Value)
For k = 1 To j
If (Wks.Range("C" & i).Value = Wks.Range("C" & i + 1).Value Or Wks.Range("C" & i).Value = Wks.Range("C" & i - 1).Value) And (Wks.Range("K" & i).Value = Wks.Range("K" & i + k).Value Or Wks.Range("K" & i).Value = Wks.Range("K" & i - k).Value) Then
Wks.Range("C" & i).Interior.ColorIndex = 43
Else
Wks.Range("C" & i).Interior.ColorIndex = 37
End If
Next k
Next i
End Sub
Sub Mark_Duplicates()
Dim Wks As Worksheet : Wks = Sheets("Sheet1")
Dim i As Integer, j As Integer, k As Integer
i = 2
k = 1
'outer loop
Do While i <= 1000
j = Application.WorksheetFunction.CountIf(Range("C2:C1000"), Wks.Range("C" & i).Value)
'inner loop
Do While k <= j
If (Wks.Range("C" & i).Value = Wks.Range("C" & i + 1).Value Or Wks.Range("C" & i).Value = Wks.Range("C" & i - 1).Value) And (Wks.Range("K" & i).Value = Wks.Range("K" & i + k).Value Or Wks.Range("K" & i).Value = Wks.Range("K" & i - k).Value) Then
Wks.Range("C" & i).Interior.ColorIndex = 43
Else
Wks.Range("C" & i).Interior.ColorIndex = 37
End If
k = k + 1
Loop
i = i + 1
Loop
End Sub
我得到运行时错误“1004”:每次运行宏时都会出现应用程序定义或对象定义的错误
出于同样的目的,我甚至尝试了以下代码:
Sub Mark_Duplicates()
Dim Wks As Worksheet : Wks = Sheets("Sheet1")
Dim i As Integer, j As Integer, k As Integer
For i = 2 To 1000
j = Application.WorksheetFunction.CountIf(Range("C2:C1000"), Wks.Range("C" & i).Value)
For k = 1 To j
If (Wks.Range("C" & i).Value = Wks.Range("C" & i + 1).Value Or Wks.Range("C" & i).Value = Wks.Range("C" & i - 1).Value) And (Wks.Range("K" & i).Value = Wks.Range("K" & i + k).Value Or Wks.Range("K" & i).Value = Wks.Range("K" & i - k).Value) Then
Wks.Range("C" & i).Interior.ColorIndex = 43
Else
Wks.Range("C" & i).Interior.ColorIndex = 37
End If
Next k
Next i
End Sub
Sub Mark_Duplicates()
Dim Wks As Worksheet : Wks = Sheets("Sheet1")
Dim i As Integer, j As Integer, k As Integer
i = 2
k = 1
'outer loop
Do While i <= 1000
j = Application.WorksheetFunction.CountIf(Range("C2:C1000"), Wks.Range("C" & i).Value)
'inner loop
Do While k <= j
If (Wks.Range("C" & i).Value = Wks.Range("C" & i + 1).Value Or Wks.Range("C" & i).Value = Wks.Range("C" & i - 1).Value) And (Wks.Range("K" & i).Value = Wks.Range("K" & i + k).Value Or Wks.Range("K" & i).Value = Wks.Range("K" & i - k).Value) Then
Wks.Range("C" & i).Interior.ColorIndex = 43
Else
Wks.Range("C" & i).Interior.ColorIndex = 37
End If
k = k + 1
Loop
i = i + 1
Loop
End Sub
Sub-Mark_-Duplicates()
按工作表标注工作:工作表=工作表(“工作表1”)
尺寸i为整数,j为整数,k为整数
i=2
k=1
“外环
请问错误发生在哪一行?a)为什么要声明除此之外的所有工作表父级范围(“C2:C1000”)
?b) 在第一次迭代中,i是2,j将循环到2,并且K列中没有行号0。例如,“K”&i-K
@Sean:它发生在两个codes@Jeeped.. 谢谢你的回复。这真的很有道理。i-k将给出值0,当然不存在第0行。如果我需要将“n-1”、“n-2”、“n-3”、“k”列中的“n-j”单元格与“n-1”、“n-2”、“n-3”、“n-j”单元格进行比较,请您建议我还可以使用什么