Ali*_*eir 3 csv vba file-conversion excel-vba batch-processing
我csv在.xls格式中需要大量的文件.是否可以使用宏运行批量转换或使用其他语言进行最佳操作?
我使用此代码http://www.ozgrid.com/forum/showthread.php?t=71409&p=369573#post369573来引用我的目录,但我不确定打开每个文件并保存它们的命令.这就是我所拥有的:
Sub batchconvertcsvxls()
Dim wb As Workbook
Dim CSVCount As Integer
Dim myVar As String
myVar = FileList("C:\Documents and Settings\alistairw\My Documents\csvxlstest")
For i = LBound(myVar) To UBound(myVar)
With wb
Application.Workbooks.OpenText 'How do I reference the myvar string ?
wb.SaveAs '....
End With
Next
End Sub
Function FileList(fldr As String, Optional fltr As String = "*.*") As Variant
Dim sTemp As String, sHldr As String
If Right$(fldr, 1) <> "\" Then fldr = fldr & "\"
sTemp = Dir(fldr & fltr)
If sTemp = "" Then
FileList = Split("No files found", "|") 'ensures an array is returned
Exit Function
End If
Do
sHldr = Dir
If sHldr = "" Then Exit Do
sTemp = sTemp & "|" & sHldr
Loop
FileList = Split(sTemp, "|")
End Function
Run Code Online (Sandbox Code Playgroud)
编辑:文件是格式为csv的.txt文件
小智 5
通过结合Scott Holtzman和'ExcelFreak'给出的代码,转换效果非常好.最终代码看起来像这样:
Sub CSV_to_XLS()
Dim wb As Workbook
Dim strFile As String, strDir As String
strDir = "U:\path\"
strFile = Dir(strDir & "*.csv")
Do While strFile <> ""
Set wb = Workbooks.Open(Filename:=strDir & strFile, Local:=True)
wb.SaveAs Replace(wb.FullName, ".csv", ".xls"), 50 'UPDATE:
wb.Close True
Set wb = Nothing
strFile = Dir
Loop
End Sub
Run Code Online (Sandbox Code Playgroud)
打开转换后的.xls文件会每次都发出警告:
"您尝试打开的文件'filename'的格式与文件扩展名指定的格式不同.在打开文件之前,验证文件是否已损坏且来自受信任的来源.是否要打开文件现在?"
单击是然后打开.xls文件.
有没有办法摆脱这个警告信息?每次打开.xls文件时,Excel都会发出警告.
| 归档时间: |
|
| 查看次数: |
39331 次 |
| 最近记录: |