我有以下函数,它仅在 Mac 上产生运行时错误 52 (错误的文件名或编号)Open filePath & filename For Output As #1
Function ExportAsCSV(ByVal charToEncode As String, _
ByVal filePath As String, ByVal filename As String) As Boolean
'Function to Export string to CSV. Returns True/False if successful
'Tested and working on PC XL2003,2007 & 2010 // MAC XL2011
'On Error GoTo Err:
On Error GoTo 0
Open filePath & filename For Output As #1
Print #1, charToEncode
Close #1
ExportAsCSV = True
On Error GoTo 0
Exit Function
Err:
On Error GoTo 0
ExportAsCSV = False
End Function
导致错误的示例参数是:
filePath : "Untitled:Users:ooo:Desktop:New" : String
filename : ":FloridaRhum Barbancourt 5 Star Reserve Speciál 8 Years Old.csv" : String
这绝对是导致问题的文件名,就好像我将其更改为“:test.csv”一样,它可以工作。所有单个单词也可以正常工作,因此它似乎不是编码问题,如果我生成相同长度的长文件名,也可以。
我很难过..有什么想法吗?
编辑:
还要补充一点,Open filePath & filename For Output As #1
它实际上会在正确的位置生成一个具有正确文件名的文件。但是由于 VBA 生成错误,所以没有写入任何内容,因此文件为零字节。