2016-02-29 453 views
1

我正在写一个Excel工作表的工作,当我按下一个循环遍历一些行,并将编辑一些数据,如果他们是空的,但我似乎无法让宏运行,因为它不断返回450错误。 继承人是不会运行的代码的简化版本。(开始于月底子格式化选项明确的目的行事,当我粘贴)错误450:错误的参数数量或vba无效的属性分配

Option Explicit 

Sub Copypaste() 
' 
' Copypaste Macro 
' 
' Keyboard Shortcut: Ctrl+p 
' 
    Dim i As Integer, j As Integer 
    Dim ls As Boolean 

    i = 2 
    j = 24 
    ls = True 

    Do While ls = True 

     If IsEmpty(i, j) = True Then 
      Cells(i, j).Value = 10 
      ls = False 
     Else 
      ls = True 
     End If 

     i = i + 1 
     j = j + 1 

     If i > 10 Then 
      ls = False 
     End If 
    Loop 
End Sub 

伊夫搜索线程的负载,我似乎无法找到任何与与我的任何修复相同的问题似乎不是问题。

新宏在今天发现它,可能是多个错误

回答

0

您需要更改

If IsEmpty(i, j) = True Then 

If IsEmpty(Cells(i, j).Value2) = True Then 
+0

另外,'= TRUE;是的情况下, redundent – litelite

+0

感谢Mil @Ralph,我认为多余的一个是最好的? –

+0

其实,它是@litelite谁建议你可以跳过'= True'。虽然他绝对正确,但我(个人)喜欢将它们留在代码中,因为它使代码更易于阅读。但这取决于你和个人喜好。如果你想删除它,你可以在两个地方这样做:(1)​​'虽然ls = True'可以被截断为'Do While Is ls'和(2)如果IsEmpty(Cells(i,j).Value2) =真然后'可以减少到'如果IsEmpty(Cells(i,j).Value2)Then'。 – Ralph

相关问题