我是VBA編程的新手,所以我需要您的幫助。我必須創建一個將數據從一個表單複製到另一個表單的宏。所以我所做的是錄製一個宏(使用宏錄製器)到我必須複製/粘貼的步驟。現在我必須創建一個循環來完成我需要的所有信息。使用VBA循環將數據從一張紙複製到另一張
下面是一個包含數據的工作表的截圖:
這裏是片的截圖,該數據應粘貼:
所以讓我們來談談我的報告包含的數據。我有我的公司服務的國家的月度報告。在每個月的每一天我都有一些預測,應該上傳到我們的數據庫。
這裏是我已經有了代碼:
Sub manual_upload()
Sheets("Forecast").Select
Range("G1").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("Upload").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Forecast").Select
'ActiveWindow.ScrollColumn = 2
'ActiveWindow.ScrollColumn = 1
Range("C2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Upload").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
'Selection.AutoFill Destination:=Range("B2:B31")
'Range("B2:B31").Select
Sheets("Forecast").Select
Range("E2").Select
Selection.Copy
Sheets("Upload").Select
Range("C2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("b2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
'Selection.AutoFill Destination:=Range("C2:C31")
'Range("C2:C31").Select
Sheets("Forecast").Select
Range("B2").Select
Selection.Copy
Sheets("Upload").Select
Range("D2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("c2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
'Selection.AutoFill Destination:=Range("D2:D31")
'Range("D2:D31").Select
Range("E2").Select
Sheets("Forecast").Select
Range("G2").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("Upload").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Forecast").Select
Range("D2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Upload").Select
Range("F2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("F2:F31")
Range("F2:F31").Select
'next i
End Sub
我不知道如何開始循環。應該添加哪些數據,如各種等。 我會感謝您的幫助。
取決於整個預測多少列有,我建議考慮使用Powerquery。基本步驟如下:將您的源數據(如在發佈的映像1中)設置爲表格,使用powerquery選擇該表格(從表格中查詢),然後重命名要保留的列,刪除不想要的列,並突出顯示所有日期列,並從轉換選項卡(或右鍵單擊)執行unpivot列。然後關閉並加載到工作表。 – QHarr
你的解釋是否被切斷?你不解釋領域如何填補預期的結果。什麼是*儀表板*,*預測*?除此之外,這看起來像一個融化過程。任何持有像Python pandas/R/SAS這樣的程序/語言的數據集都可以相應地重新設計。 – Parfait