Vba 使用Excel宏将CSV导出到OS X上的~/Desktop
我试图在OS X(2015)上使用Excel中的宏导出CSV。下面的代码以前工作过…但现在失败了。不幸的是,我发现所有的信息都是Windows独有的 我可以定义确切的文件路径,但在任何OSX机器上都需要它,因此定义用户主目录很重要Vba 使用Excel宏将CSV导出到OS X上的~/Desktop,vba,excel,csv,Vba,Excel,Csv,我试图在OS X(2015)上使用Excel中的宏导出CSV。下面的代码以前工作过…但现在失败了。不幸的是,我发现所有的信息都是Windows独有的 我可以定义确切的文件路径,但在任何OSX机器上都需要它,因此定义用户主目录很重要 Sub export_csv() ' export csv to ~/Desktop user_dir = user_dir + MacScript("(do shell script ""cd ~; pwd "")") file_name =
Sub export_csv()
' export csv to ~/Desktop
user_dir = user_dir + MacScript("(do shell script ""cd ~; pwd "")")
file_name = user_dir & "/Desktop/excel_export.csv"
ActiveWorkbook.SaveAs Filename:=file_name, FileFormat:=xlCSV, CreateBackup:=False
End Sub
问题是,我没有任何OSX来测试它。但我认为一个问题是如果你的工作簿中有太多的工作表
Sub CSV()
Dim ws As Excel.Worksheet
Dim strDirectory As String
Dim strCurWB As String
Dim longCurFor As Long
strCurWB = ThisWorkbook.FullName
longCurFor = ThisWorkbook.FileFormat
' Store current details for the workbook
'get Path for User Desktp
strDirectory = CreateObject("WScript.Shell").specialfolders("Desktop") & "\"
'Loop though each Sheet in the Workbook
For Each ws In ThisWorkbook.Worksheets
Sheets(ws.Name).Copy
ActiveWorkbook.SaveAs Filename:=strDirectory & ThisWorkbook.Name & "-" & ws.Name & ".csv", FileFormat:=xlCSV
ActiveWorkbook.Close savechanges:=False
ThisWorkbook.Activate
Next
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=strCurWB, FileFormat:=longCurFor
Application.DisplayAlerts = True
End Sub
我希望这个代码示例可以帮助您,您也可以将一些代码转移到OSX。我发现
运行时错误“429”:ActiveX组件无法创建对象。
@bryan您可以打开一个新的任务并发布代码吗?@bryan您从哪里得到错误?请打开一个新的Question@bryan将“CreateObject”(“WScript.Shell”).specialfolders(“Desktop”)和“\”替换为您想要的CSV路径