【发布时间】:2015-06-26 03:16:50
【问题描述】:
我已经编辑了我的原始帖子,并为您提供了更多详细信息。基本上我有这个代码:
For x = 1 To 1000
If track.Cells(x, 1) = Date Then
If track.Cells(x, 2) = "EU" Then
If track.Cells(x, 3) = "ABCDE" Then
ST.Range("ABCDE").Copy
EU.Cells(41, 2).PasteSpecial
Call ActivateSheet
track.Range(Cells(x, 4), Cells(x, 9)).Copy
**For i = 42 To 1000
If EU.Cells(42 + i, 2) Then
EU.Cells(42 + 1, 2).PasteSpecial
End If
Next i**
End If
End If
End If Next x
我在代码的这个特定部分遇到了问题:
For i = 42 To 1000
If EU.Cells(42 + i, 2) Then
EU.Cells(42 + 1, 2).PasteSpecial
End If
Next i
这基本上是从同一工作簿上的另一个工作表复制一系列单元格,并将其放在另一个工作表上。现在,我遇到问题的代码会发生什么,我希望它在粘贴第一个之后粘贴到下面的行。还有其他方法可以实现吗?我才刚刚开始自学 VBA 编码。任何建议将不胜感激。
【问题讨论】:
-
有一个“字符串值”而不是一个“数值”,或者你的意思是跳过任何包含任何类型值的单元格?
-
@JGreenwell 我的错,我的意思是跳过包含任何类型值的单元格。
-
For i = 1 To 1000 If sheet.Cells(42 + 1, 2) = blank Then sheet.Cells(i + 1, 2).PasteSpecial Else Next i End If
-
请不要将 [宏] 用于 MS Office 或 VBA。 macros tag wiki
标签: vba excel if-statement skip