我有一个关于excel vba的问题以及“For”循环使用“IF”功能。我会尽量保持清醒。
这是代码:
sub cicleFor()
For i= 1 to 2
Calculate
Range("E3").Select
Selection.Copy Sheets("Sheet2").Select Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Sheet1").Select
Range("C14").Select
Next
很简单!我拿E3,将糊状物复制到另一个细胞(A2)中两次。 我在开始时使用计算,因为E3中的数字每次都会改变
我想要的是以下内容:
使用“IF”功能,如果A2已满,则转到A3,依此类推,i = 1到100。
由于我使用了for功能,我想要A2,A3,A4,... A100填充sheet1的E3结果。
我不是专家,你可以看到!
如果您有任何提示,我将不胜感激!
谢谢!
答案 0 :(得分:1)
编辑添加多个单元格的情况
也许你在此之后
Sub cicleFor()
For i = 1 To 100
Calculate
Sheets("Sheet2").Cells(1 + i, 1).Value = Sheets("Sheet1").Range("E3").Value
Next
End Sub
如果您需要复制/粘贴多个单元格的内容,那么您希望使用Resize(nRows, nColumns)
对象的Range
属性来正确调整" target"范围大小适合"来源"一个
Sub cicleFor()
For i = 1 To 100
Calculate
Sheets("Sheet2").Cells(1 + i, 1).Resize(,4).Value = Sheets("Sheet1").Range("E3:H3").Value
Next
End Sub
答案 1 :(得分:0)
您的代码可能更短 - 如果您只想传输值,则无需选择/复制/粘贴。使用End(xlUp)
找到上次使用的单元格。
Sub cicleFor()
For i= 1 to 2
Calculate
Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = _
Sheets("Sheet1").Range("E3").Value
Next
End Sub