VBA Excel日期生成器

时间:2014-07-22 19:21:05

标签: excel vba excel-vba

我想知道是否有办法使用vba或excel从2010年10月10日开始到2015年9月30日结束每天的数组。不幸的是,日期必须采用YYYYMMDD格式,例如20091001和20150930。

感谢您的帮助

3 个答案:

答案 0 :(得分:3)

对于非VBA解决方案,KingsInnerSoul的解决方案非常好。 对于VBA,你可以这样做:

Sub tgr()

    Dim arrDates() As Variant
    Dim dtStart As Date
    Dim dtEnd As Date

    'Assign start and end dates
    dtStart = CDate("Oct 10, 2010")
    dtEnd = CDate("Sep 30, 2015")

    'Create the array by evaluating an Index formula
    arrDates = Application.Transpose(Evaluate("INDEX(TEXT(""" & dtStart & """+ROW(1:" & dtEnd - dtStart + 1 & ")-1,""YYYYMMDD""),)"))

    'Example of how to access the array values
    MsgBox arrDates(1) & Chr(10) & _
           arrDates(2) & Chr(10) & _
           arrDates(3)

    'You could iterate over the array with a loop also,
    'or use any other array function, like Filter(), etc

End Sub

答案 1 :(得分:1)

在Excel中创建一个列表:

  1. 如果你去excel,
  2. 在第一个顶级单元格类型10/10/2010
  3. 然后右键单击该单元格 - 并选择Format Cells
  4. 然后转到Custom类别
  5. Type输入区域类型yyyymmdd中 - 验证Sample字段中的格式是否正确(我将其设置为yyyymmdd;@
  6. OK
  7. 单元格突出显示后,您可以看到它周围的边框,以及单元格右下角的+
  8. 点击+并根据需要将其向下拖动多行 - 它将复制单元格内容并创建一个系列,每个单元格添加一天。
  9. 在Word中创建单行列表:

    1. 在Excel中创建该单个列后,在其旁边的列中键入,(逗号),然后以相同方式向下拖动它,以便将其复制到整个系列旁边。
    2. 在Excel中复制两列。
    3. 将其粘贴到MS Word。
    4. 在右下角会出现一个图标 - Paste Options
    5. 点击Paste Options图标,然后选择“仅保留文字”#39; - 这是' A'图标。现在,您将拥有一个包含数字,制表符,逗号和Enter字符的文本列。
    6. Search and Replace打开CTRL+H
    7. 在'查找内容'输入字段类型^p - 它是Enter的代码。
    8. 留下`替换为'场空。
    9. 按“全部替换”#39;
    10. OK确认总替换次数弹出窗口。
    11. 要删除Tab字符,请重复步骤6-10,但搜索并替换^w
    12. More有关特殊字符的信息。

      相关问题:
      VBA convert range to array and format date
      excel vba filling array
      VBA Excel - Problems with a simple macro to auto-fill cells for a budgeting spreadsheet I'm attempting to make
      Fill two columns with random dates
      How to force Excel to automatically fill prior year in column instead of current year?
      Fill dates array and add dummy variables
      https://stackoverflow.com/questions/25277464/fill-dates-gap-in-excel

答案 2 :(得分:0)

为了图像,在说A1和HOME>中添加2010年10月10日(格式化yyyymmdd)。编辑, - 填充:,系列......

SO24895967 example

表示列(或连续更改系列)。