VBA中的过程调用错误无效

时间:2014-05-25 15:39:22

标签: vba outlook-vba

我有下面的函数,它接受一个字符串(文件的路径),并且应该以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。

2 个答案:

答案 0 :(得分:0)

  

Const TristateTrue = -1

TristateTrue常量的值不正确。对于Unicode,它应该是1。 -1不是possible values之一。

答案 1 :(得分:0)

需要使用-2代替-1,但不确定这是否是unicode。我想要做的就是以UTF-8格式阅读。 -2对应于根据上面链接的文章的系统默认值。我不知道这是什么,但它无论如何都适用。