我试图写一些VBA,将完成Excel VBA中添加新的行如果条件满足
如果行O不再是当前行明确列空,则所有数据复制到新行,然后我,J,K,L,M,N
在新插入的行明确列O
的警告我不能肯定占为-
抛出一个
类型不匹配错误
这里是我试图用
Sub BlueBell()
Application.ScreenUpdating = False
Dim i As Long, y
ReDim y(2 To Range("A" & Rows.Count).End(3).Row)
For i = UBound(y) To LBound(y) Step -1
If Cells(i, "O") Then
If Cells(i, "I") = "" And Cells(i, "K") = "" And Cells(i, "M") = "" Then
GoTo DoNothing
Else
Rows(i).Copy
Cells(i, "A").Insert
Range("I" & i & ":J" & i & ":K" & i & ":L" & i & ":M" & i & ":N" & i & ":O" & i + 1).ClearContents
GoTo DoNothing
End If
End If
DoNothing:
Next i
End Sub
您不能将字符串值用作布尔表达式。尝试更改'如果单元格(i,“O”)然后'为'如果不是空(单元格(i,“O”)。Value)Then' – YowE3K
这将不会再抛出一个错误 - 但它将清除它的行不应该? – IcyPopTarts
由于使用了“Ix:Jx:Kx:Lx:Mx:Nx:Ox + 1”的深奥范围定义 - 这实际上最终意味着范围“Ix:Ox + 1”,但它清除了错误的单元格,但不应该使用。有关该范围定义的一些有趣评论,请参阅http://stackoverflow.com/q/41653917/6535336。 – YowE3K