我想制作一张具有不同宏按钮的工作表此工作表名为按钮。此工作表中的宏按钮链接到应在不同工作表上运行的宏。我试图为表格 1制作一个宏按钮。股票&需求:
Sub NeuerTag()
'Abfrage ob der Tag eingefügt werden soll, No = QUIT'
If MsgBox("Möchtest du die Tabelle vorbereiten?", vbYesNo) = vbNo Then Exit Sub
'Copies the last three coloumns of the Worksheet 1. Stock & Demand'
With Sheets("1. Stock & Demand")
Lastcol = .Cells(1, Columns.Count).End(xlToLeft).Column
Columns(Lastcol - 1).Resize(, 1).Select
Selection.Copy
'Selects the first empty cell in 1. Stock & Demand and pastes'
Sheets("1. Stock & Demand").Range("F3:ZZ3").End(xlToRight).Offset(-2, 1).Paste
'Pastes the Today()'
Sheets("1. Stock & Demand").Range("F3:ZZ3").End(xlToRight).Offset(-1, 0).Select
Selection.Value = Date
'Paste Special - Values'
With Sheets("1. Stock & Demand")
Lastcol = .Cells(1, Columns.Count).End(xlToLeft).Column
Columns(Lastcol - 3).Resize(, 1).PasteSpecial Paste:=xlPasteValues
End With
End With
End Sub
现在我遇到了问题。每当我创建一个宏按钮并让它运行时,它只会在工作表按钮中完成,而不是在我希望它工作的工作表中。
我不得不说我不擅长编码,所以请像我五岁那样向我解释一下; - )。
答案 0 :(得分:1)
您必须为宏指定工作表名称。例如,你可以试试这个:
Workbooks("Your_worksheet_name_here").Sheets("1. Stock & Demand").Range("F3:ZZ3").End(xlToRight).Offset(-2, 1).Paste
通常情况下,为了保持清醒,我会做这样的事情:
Set targetSheet = Workbooks("Your_worksheet_name_here").Sheets("1. Stock & Demand")
targetSheet.Range("F3:ZZ3").End(xlToRight).Offset(-2, 1).Paste
答案 1 :(得分:1)
小事 - 在你的With
陈述中,你是错误编码的。注意“。”。通过错放/省略它,您将在错误的选项卡中得到结果。
例如
With Sheets("1. Stock & Demand")
Lastcol = .Cells(1, Columns.Count).End(xlToLeft).Column
Columns(Lastcol - 3).Resize(, 1).PasteSpecial Paste:=xlPasteValues
End With
应该是
With Sheets("1. Stock & Demand")
Lastcol = .Cells(1, .Columns.Count).End(xlToLeft).Column
.Columns(Lastcol - 3).Resize(, 1).PasteSpecial Paste:=xlPasteValues
End With
这......
With Sheets("1. Stock & Demand")
Lastcol = .Cells(1, Columns.Count).End(xlToLeft).Column
Columns(Lastcol - 1).Resize(, 1).Select
Selection.Copy
'Selects the first empty cell in 1. Stock & Demand and pastes'
Sheets("1. Stock & Demand").Range("F3:ZZ3").End(xlToRight).Offset(-2, 1).Paste
'Pastes the Today()'
Sheets("1. Stock & Demand").Range("F3:ZZ3").End(xlToRight).Offset(-1, 0).Select
Selection.Value = Date
应该是......
With Sheets("1. Stock & Demand")
Lastcol = .Cells(1, .Columns.Count).End(xlToLeft).Column
.Columns(Lastcol - 1).Resize(, 1).Copy
'Selects the first empty cell in 1. Stock & Demand and pastes'
.Range("F3:ZZ3").End(xlToRight).Offset(-2, 1).Paste
'Pastes the Today()'
.Range("F3:ZZ3").End(xlToRight).Offset(-1, 0).Value = Date