繁体   English   中英

我想将单元格的范围从一张纸复制到下一张空白行的另一张纸

[英]I want to copy a range of cells from one sheet to another sheet in the next blank row

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

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

这是我到目前为止所拥有的。 我的第一个问题是,有时要复制的范围包含空白单元格,而我不想复制这些单元格。 我只选择复制该范围内的值的单元格。

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

我对此没有经验,并且已经为此工作了一个多星期!

    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

因此,从您的问题来看,如果cekk H36为空白,则H37应该在log表中代替。 这确实意味着,如果您将自己的值与“ New Entry中其所在的列进行匹配,则您的值将出现偏差。

如果coulmn I有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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM