[英]How to copy worksheet onto a different worksheet (not as additional worksheet)
[英]How to copy a weekly worksheet with a specific column of data onto a new worksheet
希望有人知道答案...我對在Excel上使用VBA感到陌生。
我正在嘗試為我們的食堂員工創建每周食品雜貨預算。 我一直試圖做的是允許用戶在新工作表上創建每個每周預算。
到目前為止,我創建的表是包含“庫存開始”和“庫存結束”列的表格。 創建新的工作表時,“廚房主管”希望將“庫存結束”列移到“庫存開始”列。
我認為最好的方法是允許用戶用數據填充工作表,然后單擊按鈕將創建一個新的工作表並將“庫存結束”列復制到新創建的工作表的“庫存開始”中。
我還想建立一個標准化的命名約定,例如“從DD / MM / YY開始的一周。”但是這太難了。
我設法找到2個單獨的代碼段。
第一部分復制了“主”工作表,並允許用戶自己命名新工作表。 這將是完美的,但它僅依賴於“主”工作表。 我希望它可以復制活動工作表。
我用'阻止的代碼的第二部分。 會將數據從“庫存結束”(G4:G83)復制到新的“庫存開始”(C4:C83)。
但是此代碼需要知道要在其中復制的工作表的名稱...
由於這個原因,我無法讓這兩個代碼合而為一。 我不知所措...
這是我的Google雲端硬盤上有問題的電子表格的副本:
親切的問候
Ť
Private Sub CommandButton1_Click()
Dim sName As String
Dim wks As Worksheet
Worksheets("Master").Copy after:=Sheets(Worksheets.Count)
Set wks = ActiveSheet
Do While sName <> wks.Name
sName = Application.InputBox _
(Prompt:="Enter new worksheet name")
On Error Resume Next
wks.Name = sName
On Error GoTo 0
Loop
Set wks = Nothing
'Worksheets(1).Range("G4:G83").Copy
'Worksheets(2).Range("C4:C83").PasteSpecial xlPasteValues
End Sub
代替使用Worksheets("Master")
和Worksheets(1)
使用ActiveSheet
。 代替使用Worksheets(2)
使用wks
。
這是我用來使它們全部正常工作的最終代碼。
謝謝AnotherParker的所有幫助!
Ť
Private Sub CommandButton1_Click()
Dim sName As String
Dim wks As Worksheet
ActiveSheet.Copy after:=Sheets(Worksheets.Count)
Set wks = ActiveSheet
Do While sName <> wks.Name
sName = Application.InputBox _
(Prompt:="Enter new worksheet name")
On Error Resume Next
wks.Name = sName
On Error GoTo 0
Loop
Set wks = Nothing
ActiveSheet.Range("G4:G83").Copy
ActiveSheet.Range("C4:C83").PasteSpecial xlPasteValues
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.