如何解决在文件名中“读取”汉字
我修改了我从Kutools找到的vba代码,该代码将XLS和XLSX的文件夹批量转换为CSV。 Kutools代码的问题在于,它无法处理多张工作簿的转换。
所以我写了这个修改:
Sub Button1_Click()
Dim xObjWB As Workbook
Dim xObjWS As Worksheet
Dim xStrEFPath As String
Dim xStrEFFile As String
Dim xObjFD As FileDialog
Dim xObjSFD As FileDialog
Dim xStrSPath As String
Dim xStrCSVFName As String
Dim intFileCount As Integer
Dim TargetFN As String
On Error GoTo EndHandler
If MsgBox("This macro will convert all XLS and XLSX files from one folder to CSVs in another folder." & Chr(13) & Chr(13) & _
"The program will attempt to close all other workbooks before starting the conversion." & Chr(13) & Chr(13) & _
"This process may take a while. You will be notified when the conversion is finished." & Chr(13) & Chr(13) & _
"Click OK to continue. . .",vbOKCancel,"Read Carefully!") = vbCancel Then
GoTo EndHandler
Else
For Each xObjWB In Workbooks
If xObjWB.Name <> ThisWorkbook.Name Then
xObjWB.Close
End If
Next
End If
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
On Error Resume Next
Set xObjFD = Application.FileDialog(msoFileDialogFolderPicker)
xObjFD.AllowMultiSelect = False
xObjFD.Title = "Select a folder which contains Excel files"
If xObjFD.Show <> -1 Then Exit Sub
xStrEFPath = xObjFD.SelectedItems(1) & "\"
Set xObjSFD = Application.FileDialog(msoFileDialogFolderPicker)
xObjSFD.AllowMultiSelect = False
xObjSFD.Title = "Select a folder to locate CSV files"
If xObjSFD.Show <> -1 Then Exit Sub
xStrSPath = xObjSFD.SelectedItems(1) & "\"
xStrEFFile = Dir(xStrEFPath & "*.xls*")
Do While xStrEFFile <> ""
Set xObjWB = Workbooks.Open(Filename:=xStrEFPath & xStrEFFile)
xStrCSVFName = xStrSPath & Left(xStrEFFile,InStr(1,xStrEFFile,".") - 1)
intFileCount = 0
TargetFN = ""
For Each xObjWS In xObjWB.Sheets
intFileCount = intFileCount + 1
'TargetFN = xStrCSVFName & "_Sheet" & intFileCount & "_" & xObjWS.Name & ".csv"
TargetFN = xStrCSVFName & "_Sheet" & intFileCount & ".csv"
xObjWS.Copy
ActiveWorkbook.SaveAs Filename:=TargetFN,FileFormat:=xlCSV
ActiveWorkbook.Close SaveChanges:=False
Next
xObjWB.Close SaveChanges:=False
xStrEFFile = Dir
Loop
MsgBox "Process Finished!",""
EndHandler:
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
我基本上添加了一个循环来循环浏览每个工作簿中的每个工作表,以另存为单独的CSV文件。
除非源文件名中不包含中文字符,否则宏将冻结。
有什么办法可以处理源文件名中的汉字?
提前谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。