我想在下一个空白行中将一系列单元格从一个工作表复制到另一个工作表

时间:2014-02-25 21:30:06

标签: excel vba excel-vba

我的工作簿包含两张。第一个用于将数据输入“新条目”,另一个用于记录所有条目的日志“日志”。清除“新条目”表,以便输入下一个数据集。

我需要将“新条目”表中的数据复制到下一个空白单元格中的“日志”表中。

这是我到目前为止所拥有的。我的第一个问题是,有时它复制的范围有空白单元格,我不想复制它们。我只想复制具有该范围值的单元格。

我的另一个问题是我无法将复制的单元格粘贴到下一个空白单元格中。

我没有这方面的经验,我已经为此工作了一个多星期了!

    Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim copySheet As Worksheet
Dim pasteSheet As Worksheet

Set copySheet = Worksheets("New Entry")
Set pasteSheet = Worksheets("Log")

copySheet.Range("H35:AY45").Copy
pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

1 个答案:

答案 0 :(得分:0)

所以从查看你的问题来看,如果cekk H36是空白的,那么H37应该取代log表。 这确实意味着如果你是你,如果你将它们与New Entry中的列相匹配,那么价值会变得歪曲。

如果coulmn我有5个非空白单元格,而J列有8个,那么它只会复制那些5和8.但是下次它将开始粘贴I7中的第I列并粘贴到单元格J10中。无论哪种方式让我知道你对此的看法。

  Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim copySheet As Worksheet
Dim pasteSheet As Worksheet
Dim i As Long, j As Long
j = 8
i = 35
Set copySheet = Worksheets("New Entry")
Set pasteSheet = Worksheets("Log")
Do While j < 45
Do While i < 46
If Sheets("New Entry").Cells(i, j).Value <> "" Then
copySheet.Cells(i, j).Copy
pasteSheet.Cells(Rows.Count, j - 7).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
End If
i = i + 1
Loop
i = 35
j = j + 1
Loop
End Sub