繁体   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