我想创建一个菜单表,从中我可以为不同的表启动不同的宏。但是,当我开始时,代码不起作用是从差异表。当我从“1. Stock& Demand”表单
启动代码时,代码才能正常工作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
'Kopiert die letzten 3 Spalten des Tabellenblattes'
With Sheets("1. Stock & Demand")
Lastcol = Cells(1, Columns.Count).End(xlToLeft).Column
Columns(Lastcol - 1).Resize(, 1).Select
Selection.Copy
'Wählt die erste freie Spalte aus und fügt das zuvor kopierte ein'
Sheets("1. Stock & Demand").Range("F3:ZZ3").End(xlToRight).Offset(-2, 1).Select
ActiveSheet.Paste
'Aktuelles Datum einfügen'
Sheets("1. Stock & Demand").Range("F3:ZZ3").End(xlToRight).Offset(-1, 0).Select
Selection.Value = Date
'Wählt die zuvor kopierten Spalten aus und nimmt die Formeln raus'
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 :(得分:3)
如评论中所示,至少有两个问题
1)当你说"我想创建一个Home-Sheet,我可以在那里为不同的表开始不同的宏。"你给人的印象是你想要使用代码模块来实现" Home-Sheet"包含宏。大多数宏不属于这种表单模块。相反,它们属于标准代码模块。 {/ 1}}在VBA编辑器中将其放在那里。
2)像
这样的行并不重要Insert
属于Lastcol = Cells(1, Columns.Count).End(xlToLeft).Column rather than Lastcol = Cells(1, Columns.Count).End(xlToLeft).Column
语句的范围。除非您在With
前加一个点,否则VBA将在活动工作表的上下文中解释Cells
。相反,使用:
Cells
类似评论适用于Lastcol = .Cells(1, Columns.Count).End(xlToLeft).Column rather than Lastcol = Cells(1, Columns.Count).End(xlToLeft).Column
。