繁体   English   中英

当一张工作表合并单元格时用于从一张Excel工作表复制到另一张工作表的宏

[英]Macro for copying from one excel sheet to another when one sheet has merged cells

我已经在Excel 2013中处理此模板已有一段时间了。 我从这里和其他站点使用了几种不同的建议,但仍然无法使它起作用。 在理想情况下,这将是一个模板,我在输入数据后从第一张工作表中打印出来,单击宏按钮,然后将某些单元格数据保存到名为“ log”的下一张工作表中。 日志中的数据将随时间推移进行编译,而主表将被更改,然后作为数据表打印。

出于某种原因,使用此代码,我的数据总是在列的最后一行结束。 我也很难让它在第一次运行宏后继续添加数据。 我使用名称而不是单元格范围,因为我认为这可能有助于擅长处理从中复制的合并单元格。 一旦在日志表中填充了列,它也会引发错误。 任何建议都是很好的,因为我对vba不太了解! 如果将它们从同样适用于我的Word模板发送到日志更容易,但我认为仅在excel中工作会更容易。

谢谢!!!

Sub Paste()
Dim LastRow As Long

LastRow = Sheets("log").Range("A65536").End(xlUp).row + 1

Sheets("Sheet").Range("ManufactureDate").Copy Destination:=Sheets("log").Range("A2" & LastRow)
Sheets("Sheet").Range("PartNumber").Copy Destination:=Sheets("log").Range("B2" & LastRow)
Sheets("Sheet").Range("SampleNumber").Copy Destination:=Sheets("log").Range("C2" & LastRow)
Sheets("Sheet").Range("ShiftNumber").Copy Destination:=Sheets("log").Range("D2" & LastRow)
Sheets("Sheet").Range("BatchNumber").Copy Destination:=Sheets("log").Range("E2" & LastRow)
Sheets("Sheet").Range("LineNumber").Copy Destination:=Sheets("log").Range("F2" & LastRow)
Sheets("Sheet").Range("AverageHardness").Copy Destination:=Sheets("log").Range("G2" & LastRow)
Sheets("Sheet").Range("TotalCompression").Copy Destination:=Sheets("log").Range("H2" & LastRow)
Sheets("Sheet").Range("Length").Copy Destination:=Sheets("log").Range("I2" & LastRow)
Sheets("Sheet").Range("PostWidth").Copy Destination:=Sheets("log").Range("J2" & LastRow)
Sheets("Sheet").Range("RailWidth").Copy Destination:=Sheets("log").Range("K2" & LastRow)
Sheets("Sheet").Range("TotalDepth").Copy Destination:=Sheets("log").Range("L2" & LastRow)
Sheets("Sheet").Range("Offset").Copy Destination:=Sheets("log").Range("M2" & LastRow)

End Sub

我认为您的变量LastRow定义不正确。 尝试使用下面的代码。 我试过了,它有效! 下面的代码复制Sheet1上单元格A1的单元格内容,并将其粘贴到工作表上。登录到列A中的第一个空单元格中。您可以轻松地将代码扩展到您的情况。 希望这可以帮助。

Sub Paste2log()

Dim sht As Worksheet
Dim LastRow As Long

Set sht = ThisWorkbook.Worksheets("log")

'Ctrl + Shift + End
  LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row

Sheets("Sheet1").Range("A1").Copy Destination:=sht.Range("A" & LastRow + 1)

End Sub

暂无
暂无

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

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