gpt4 book ai didi

VBA 以特定列格式将 CSV 文件保存到 Excel

转载 作者:行者123 更新时间:2023-12-04 22:00:33 26 4
gpt4 key购买 nike

我相当确定这是一个简单的请求,但我通常不使用任何 VBA 脚本,所以这超出了我的知识范围。

我有一个包含大约 700 个 .csv 文件的文件夹,它们是“|”分隔,基本上我想要做的就是打开这个特定的文件夹并将所有 .csv 文件转换为 .xls 并将所有列格式化为“文本”而不​​是“一般”。我做了一些搜索,找到了转换文件的确切代码,但是我不知道如何使列成为文本。任何帮助将不胜感激!我试过寻找,但如果答案在其他地方,请指出我正确的方向。 (以下是适用于 .csv 到 .xls 的代码)

Sub CSVtoXls()
Dim CSVfolder As String
Dim XlsFolder As String
Dim fname As String
Dim wBook As Workbook
CSVfolder = "C:\Users\del44\Desktop\CSV Files\"
XlsFolder = "C:\Users\del44\Desktop\Excel Files\"
fname = Dir(CSVfolder & "*.csv")
Do While fname <> ""
Set wBook = Workbooks.Open(CSVfolder & fname, Format:=6, Delimiter:="|")
wBook.SaveAs XlsFolder & Replace(fname, ".csv", ".xls")
wBook.Close False
fname = Dir
Loop
Dim rCell As Range

最佳答案

重写。测试看看这现在是否有效。

Sub CSVtoXls()

Dim CSVfolder As String
Dim XlsFolder As String
Dim fname As String
Dim LnLastRow As Long
Dim StString As String
Dim StSplit() As String
Dim wBook As Workbook
CSVfolder = "C:\Users\del44\Desktop\CSV Files\"
XlsFolder = "C:\Users\del44\Desktop\Excel Files\"
fname = Dir(CSVfolder & "*.csv")
Do While fname <> ""
Set wBook = Workbooks.Open(CSVfolder & fname, Format:=6, Delimiter:="|")
LnLastRow = wBook.Sheets(1).Range("A1").End(xlDown).Row
For i = 1 To LnLastRow
StString = wBook.Sheets(1).Cells(i, 1)
StSplit() = Split(Mid(StString, 1), "|")
For j = LBound(StSplit) To UBound(StSplit)
wBook.Sheets(1).Cells(i, (j + 1)) = "'" & StSplit(j)
Next j
Next i
wBook.SaveAs XlsFolder & Replace(fname, ".csv", ".xls"), FileFormat:=56
wBook.Close False
fname = Dir
Loop

Dim rCell As Range

End Sub

我已经退出了“.textocolumns”的选项,而是拆分了每个单元格。看看这是否有帮助!

关于VBA 以特定列格式将 CSV 文件保存到 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35636149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com