簡體   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