将值复制到第一个空行excel VBA

时间:2016-03-07 11:59:36

标签: excel vba excel-vba

我的VBA功能有问题。

复制工作正常,但我想将诗歌复制到第一个空单元格,而不是我选择的单元格。 此刻我有这样的事情:

Sub kopiowanie_styczen_luty()
Dim a As Integer
Dim i As Integer
Dim test As Long

    If Range("AI6").Value < 30 Then
        test = Sheets("Styczeń").Range("AI6").Value
        Sheets("Styczeń").Range("B6").Copy Destination:=Sheets("Luty").Range("B6")
        Sheets("Luty").Range("AJ6") = test
        Sheets("Styczeń").Range("B6:AI6").Interior.ColorIndex = 0
    End If
    If Range("AI6").Value >= 30 Then
        Sheets("Styczeń").Range("B6:AI6").Interior.ColorIndex = 22
    End If
EndSub

我想将Sheets("Styczeń").Range("B6").Copy复制到Sheets("Luty")的第一个空白B行,我该怎么做?

还有一个问题,你是否可以在一个循环中这样做,以便在多达100行时不重复循环?

1 个答案:

答案 0 :(得分:1)

这会将数据放入工作表B列B中的下一个空白单元格中;&#34; Luty&#34;

Sub kopiowanie_styczen_luty()
Dim a As Integer
Dim i As Integer
Dim test As Long
Dim lastRow as long
Dim cellData as variant

    If Range("AI6").Value < 30 Then
        test = Sheets("Styczeń").Range("AI6").Value
        cellData = Sheets("Styczeń").Range("B6").value
        with worksheets("Luty")
            lastRow = .Range("B" & .rows.count).end(xlup).row + 1
            .range("B" & cstr(lastRow)).value = cellData
        end with
        Sheets("Luty").Range("AJ6") = test
        Sheets("Styczeń").Range("B6:AI6").Interior.ColorIndex = 0
    End If
    If Range("AI6").Value >= 30 Then
        Sheets("Styczeń").Range("B6:AI6").Interior.ColorIndex = 22
    End If
End Sub

关于你的第二个问题,我不确定你想要什么。