Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 由创建名为06/01、06/02等的新图纸的宏自动填充的天数的相反顺序_Excel - Fatal编程技术网

Excel 由创建名为06/01、06/02等的新图纸的宏自动填充的天数的相反顺序

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

我正在尝试设置一个宏,当运行该宏时,它将自动创建按时间顺序显示日期名称的新工作表。EX:06/01、06/02,并用“模板”表中的数据填充单元格。宏当前将以相反的顺序创建这些图纸,如06/30、06/29…等。如何使其从06/01…06/30开始,而不是从06/30…06/01开始,并创建新的命名图纸

我尝试了下面列出的代码。随着时间的推移

板材(“温度”)范围(“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")"