我有下面的函数,它接受一个字符串(文件的路径),并且应该以unicode读取(因为我正在返回字形,并且怀疑字符编码是错误的 - http://msdn.microsoft.com/en-us/library/office/gg278834(v=office.15).aspx)
代码错误出现在5 Invalid procedure call or argument
。
这是功能:
Function readFile(pathIn As String) As String
On Error GoTo err_handle:
Const ForReading = 1
Const TristateTrue = -1
Dim oFSO As FileSystemObject
Set oFSO = New FileSystemObject
Dim oFS As TextStream
If oFSO.FileExists(pathIn) Then
Set oFS = oFSO.OpenTextFile(pathIn, ForReading, False, TristateTrue)
GoTo return_string:
Else
Debug.Print ("inVar file cannot exist!")
readFile = "ERROR"
End If
Exit Function
return_string:
readTxtFile = oFS.ReadAll
oFS.Close
Exit Function
err_handle:
Debug.Print ("Error in readFile()[B]: " & Err.Number & " " & Err.Description)
readFile = "ERROR"
oFS.Close
Exit Function
End Function
有什么想法吗?
解答:
需要使用-2而不是-1。
答案 0 :(得分:0)
Const TristateTrue = -1
TristateTrue
常量的值不正确。对于Unicode,它应该是1。 -1不是possible values之一。
答案 1 :(得分:0)
需要使用-2代替-1,但不确定这是否是unicode。我想要做的就是以UTF-8格式阅读。 -2对应于根据上面链接的文章的系统默认值。我不知道这是什么,但它无论如何都适用。