簡體   English   中英

如何將具有特定數據列的每周工作表復制到新工作表上

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM