IF函数和循环

时间:2018-02-13 18:41:57

标签: excel vba

我有一个关于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结果。

我不是专家,你可以看到!

如果您有任何提示,我将不胜感激!

谢谢!

2 个答案:

答案 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"范围大小适合"来源"一个

例如,复制/粘贴范围的内容" E3:H3" (即四列)你想要使用:

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