Excel 由创建名为06/01、06/02等的新图纸的宏自动填充的天数的相反顺序
我正在尝试设置一个宏,当运行该宏时,它将自动创建按时间顺序显示日期名称的新工作表。EX:06/01、06/02,并用“模板”表中的数据填充单元格。宏当前将以相反的顺序创建这些图纸,如06/30、06/29…等。如何使其从06/01…06/30开始,而不是从06/30…06/01开始,并创建新的命名图纸 我尝试了下面列出的代码。随着时间的推移Excel 由创建名为06/01、06/02等的新图纸的宏自动填充的天数的相反顺序,excel,Excel,我正在尝试设置一个宏,当运行该宏时,它将自动创建按时间顺序显示日期名称的新工作表。EX:06/01、06/02,并用“模板”表中的数据填充单元格。宏当前将以相反的顺序创建这些图纸,如06/30、06/29…等。如何使其从06/01…06/30开始,而不是从06/30…06/01开始,并创建新的命名图纸 我尝试了下面列出的代码。随着时间的推移 板材(“温度”)范围(“d5”)。值=板材(“温度”)范围(“a5”)-X 到 板材(“温度”)范围(“d5”)。值=板材(“温度”)范围(“a5”)+X
板材(“温度”)范围(“d5”)。值=板材(“温度”)范围(“a5”)-X
到
板材(“温度”)范围(“d5”)。值=板材(“温度”)范围(“a5”)+X
在VB中为临时工作表设置代码:
--开始--
--完成--
我希望创建工作表并使用“模板”中的数据自动填充,每个工作表的名称为06/01…06/30,但输出的工作表的名称为06/30到06/01。如果您仔细查看代码,您会注意到工作表的创建顺序是正确的:它们只是没有按顺序组织。 您将希望每个新图纸位于最近创建的图纸后面。您可以阅读有关创建新工作表的说明。此链接中回答您问题的代码位为:
Sheets.Add(之后:=Worksheets(Worksheets.Count))
我想出了一个解决方案,在模板工作表中自动填充每个工作表的相应数据,同时为每月的每一天(即6.1-6.30)创建一个新的工作表
宏为1的excel电子表格使用以下单元格进行设置:
-Enter Start Date in cell A5 ex. 6/1
-Enter End Date in B5 ex. 6/30
-Enter the numbers of days in that month in C5 ex. 30
-Type "=A5" in cell D5
-In cell A6 enter "=TEXT(D5,"dd-mmm")"
输入所有信息后,运行宏,将有28-31个新工作表,所有工作表的模板数据都复制到每个新工作表中。我已尝试添加工作表。添加(之后:=工作表(worksheets.Count))。名称=新名称,但未成功。有什么建议吗?这样做时必须单独命名。在Sheet.Add.name行之前或之后?必须先拥有该工作表,然后才能将其重命名为:after。link准确地告诉您如何做,我使用了
Dim ws As Worksheet ws=Sheets.Add(在:=Worksheets(Worksheets.Count)之后)ws.Name=newname
,它仍然将它们排序为6.30到6.01。我遗漏了什么?开始时S的值是多少?S的值是30确定最后一个问题。范围a6的值是多少?这是您设置图纸名称的地方,因此我可能应该从这里开始a6的值是=TEXT(D5,“dd mmm”)
,其中D5等于A5,A5是结束日期值。在本例中为6/30。以下是单元格设置:在单元格“B5”中输入开始日期,在单元格“A5”中输入结束日期,在单元格“C5”中输入以下公式=A5-B5+1,在单元格“D5”中输入以下公式=A5,在单元格“A6”中输入以下公式=文本(D5,“dd mmm yyyy”)
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
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws.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
-Enter Start Date in cell A5 ex. 6/1
-Enter End Date in B5 ex. 6/30
-Enter the numbers of days in that month in C5 ex. 30
-Type "=A5" in cell D5
-In cell A6 enter "=TEXT(D5,"dd-mmm")"