我正在尝试设置一个宏,该宏在运行时将按时间顺序自动创建具有日期名称的新工作表。例如:06/01、06/02 并用"template"表中的数据填充单元格。宏当前将以相反的顺序创建这些工作表,例如 06/30、06/29..等。我如何使它从 06/01...06/30 而不是 06/30...06/01 开始并创建新的命名工作表?
我已经尝试了下面列出的代码。随着改变Sheets("Temp").Range("d5").Value = Sheets("Temp").Range("a5") - X
至Sheets("Temp").Range("d5").Value = Sheets("Temp").Range("a5") + X
在 VB 中为 Temp Sheet 设置代码:
- 开始 -
Sub Dtpopulate()
Dim S As Integer
Dim X As Integer
S = Sheets("Temp").Range("c5").Value
For X = 1 To S
newname = Sheets("Temp").Range("a6").Value
Worksheets("Template").Activate
Sheets("Template").Cells.Select
Selection.Copy
Sheets.Add.Name = newname
Sheets(newname).Cells.Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats,
Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("Temp").Range("d5").Value = Sheets("Temp").Range("a5") - X
Next X
End Sub
- 结束 -
我希望创建工作表并使用"template"中的数据自动填充,并且每张工作表都命名为 06/01...06/30,但输出是命名为 06/30 到 06/01 的工作表。
最佳答案
如果您单步执行您的代码,您会注意到工作表是以正确的顺序创建的:他们只是没有按顺序组织。
您将希望每张新工作表都位于最近创建的工作表后面。您可以阅读有关创建新工作表的详细信息 here .此链接中回答您问题的代码是:Sheets.Add(After:=Worksheets(Worksheets.Count))
关于excel - 由创建名为 06/01、06/02 等的新工作表的宏自动填充的天数相反的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56401664/