![](/img/trans.png)
[英]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.