Excel表格罗列出指定范围的日期

2025-10-19 08:05:52

1、打开Excel表格,按下【Alt+F11】组合键调出VBE编辑器。

Excel表格罗列出指定范围的日期

2、点击【插入】、【模块】。

Excel表格罗列出指定范围的日期

3、在模块代码框里边输入以下VBA程序代码。

Sub Enumerate_Date()

Dim str1, str2, str3, str4, i1, i2, i3, i4, i5

On Error Resume Next '忽略运行过程中可能出现的错误

Set mysheet1 = ThisWorkbook.Worksheets("Sheet1") '定义Sheet1工作表

For i1 = 2 To 1000  '从第2行到1000行

 Set ce = mysheet1.Cells(i1, 1) '定义第一列变量单元格

  If mysheet1.Cells(i1, 1) <> "" Then '如果单元格不是空白,则

   i2 = InStr(1, ce, "-") '查找“-”所在的位置

   If i2 <> 0 Then '如果存在“-”,则

    str1 = Left(ce, i2 - 1) '截取第一个日期

    str2 = Right(ce, Len(ce) - i2) '截取第二个日期

    i3 = CDate(Replace(str1, ".", "/")) '把“.”替换成“/”并转换成日期

    i4 = CDate(Replace(str2, ".", "/"))

    str4 = ""

    For i5 = i3 To i4 '对每个日期按顺序执行

     str3 = Application.WorksheetFunction.Text(i5, "yyyymmdd") '转换成需要的格式

     If str4 = "" Then

      str4 = Chr(39) & str3 '字符串拼接( '+str3 )

     Else

      str4 = str4 & "," & str3 '字符拼接

     End If

    Next

    mysheet1.Cells(i1, 2) = str4 '拼接的字符串写入同一行的单元格

   End If

  End If

Next

End Sub

Excel表格罗列出指定范围的日期

4、检查无误后,在VBE编辑器的功能区里边点击“运行”图标运行程序。

Excel表格罗列出指定范围的日期

5、回到Sheet1工作表界面,将会看到已经罗列出指定范围日期。

Excel表格罗列出指定范围的日期

1、VBA程序思路解读:

1、单元格里面的日期范围不被计算机直接认可,需要通过截取函数(Left、Right)把它们截取出来。

2、要截取前后的日期,需要判断出截取到什么位置,即获取标识符“-”所在的位置,之后就好判断了。

3、VBA里面的日期间隔只认可斜杠“/”,不认可点号“.”,所以需要把点号“.”替换成斜杠“/”,再换成可计算的日期。

4、将转换后的日期通过for循环逐一执行,转换成所需的格式,再把它们按顺序拼接在一起,写入B列对应的单元格。

5、在写入的B列单元格里边的左上角加入个英文的单引号,主要是把单元格转换成文本格式,以免写入的拼接字符被当做数值计算。

Excel表格罗列出指定范围的日期

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢