You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA自动化修改CSV文件日期格式失败求助

解决CSV文件日期格式批量修改的VBA问题

问题原因

CSV是纯文本格式文件,直接设置单元格NumberFormat只会改变Excel的显示格式,保存为CSV时会还原成原始文本内容。要真正修改文件里的日期格式,必须将日期文本转换为日期值后,再按目标格式重新生成文本。

修正后的VBA代码

Sub BatchModifyCSVDates()
    Dim srcFolder As String, destFolder As String
    Dim fileName As String
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim dateStr As String
    
    ' 替换为你的实际源文件夹和目标网络共享路径
    srcFolder = "\\Server\Shared\SourceCSV\"
    destFolder = "\\Server\Shared\ProcessedCSV\"
    
    ' 自动创建目标文件夹(如果不存在)
    If Dir(destFolder, vbDirectory) = "" Then
        MkDir destFolder
    End If
    
    ' 遍历所有CSV文件
    fileName = Dir(srcFolder & "*.csv")
    Do While fileName <> ""
        Set wb = Workbooks.Open(Filename:=srcFolder & fileName, Local:=True)
        Set ws = wb.Sheets(1)
        
        lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
        
        ' 处理A、B列日期(假设第一行是表头,从第2行开始)
        For i = 2 To lastRow
            ' 处理A列
            dateStr = ws.Cells(i, "A").Value
            If dateStr <> "" Then
                ws.Cells(i, "A").Value = Format(DateValue(Mid(dateStr, 1, 10)), "DD/MM/YY")
            End If
            
            ' 处理B列
            dateStr = ws.Cells(i, "B").Value
            If dateStr <> "" Then
                ws.Cells(i, "B").Value = Format(DateValue(Mid(dateStr, 1, 10)), "DD/MM/YY")
            End If
        Next i
        
        ' 保存到目标路径,强制CSV格式
        wb.SaveAs Filename:=destFolder & fileName, FileFormat:=xlCSV, Local:=True
        wb.Close SaveChanges:=False
        
        fileName = Dir()
    Loop
End Sub

关键说明

  • Local:=True:确保Excel按本地区域规则解析日期,避免因系统设置导致的日期格式识别错误
  • Mid(dateStr, 1, 10):提取原日期字符串中的DD/MM/YYYY部分,忽略后面的时间
  • Format(DateValue(...), "DD/MM/YY"):将提取的日期文本转为日期值,再按目标格式生成文本,确保CSV文件存储的是修改后的格式
  • 若你的CSV没有表头,将循环起始行改为i = 1即可

内容的提问来源于stack exchange,提问作者Andrew Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 09:35:08