我目前正在研究 Excel VBA。
我有 2 個標簽。第一個選項卡名稱是“資料”(資料從服務器中提取),第二個選項卡名稱是“月份”。
我想將“資料”選項卡中的列條目復制到“月份”選項卡中的特定列。但是當新的月份資料到來時,我想做同樣的方法,但每次不為空時將復制范圍偏移 1。
下面的例子。
Data Tab
Column A
45
65
78
99
The above 4 rows of data for Column A change each month.
下面是要粘貼的月份標簽。
A B C D E F G
2022/01/31 | 2022/02/28 | 2022/03/31 | 2022/04/30 | 2022/05/31 | Total YTD |
26 | | | | | 26 |
74 | | | | | 74 |
87 | | | | | 87 |
98 | | | | | 98 |
我想將“資料”選項卡編號中的 A 列粘貼到“月份”選項卡中的 B 列,但代碼應以 A 列開頭,如果 A 列為空,則粘貼資料,否則移動到 B 列,如果 B 列為空,則粘貼資料. 如果 B 列不為空,則移至 C 列,依此類推。
到目前為止,這是我的代碼,但它僅將資料粘貼到 G 列中。任何建議或幫助將不勝感激。
Sub Copy_total()
'
' Copy_total Macro
'
' Keyboard Shortcut: Ctrl q
'
Application.ScreenUpdating = False
Dim copySheet As Worksheet
Dim pasteSheet As Worksheet
Set copySheet = Worksheets("Data")
Set pasteSheet = Worksheets("Months")
copySheet.Range("A2:A5").Copy
If pasteSheet.Cells(2, 1) = "" Then
pasteSheet.Cells(2, 1).PasteSpecial xlPasteValues
Else
pasteSheet.Cells(2, Columns.Count).End(xlToLeft).Offset(0, 1).PasteSpecial
xlPasteValues
End If
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
uj5u.com熱心網友回復:
嘗試類似:
Sub Copy_total()
'
' Copy_total Macro
'
' Keyboard Shortcut: Ctrl q
'
Application.ScreenUpdating = False
Dim sourceSheet As Worksheet
Dim destSheet As Worksheet
Dim destCells
Set sourceSheet = Worksheets("Data")
Set destSheet = Worksheets("Months")
sourceSheet.Range("A2:A5").Copy
Set destCells = destSheet.Cells(2, 1)
' Skips cells already filled.
Do While destCells <> ""
Set destCells = destCells.Offset(0, 1)
Loop
destCells.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/422130.html
標籤:
