VBA type mismatch

为什么我的这个VBA会报错误?

Private Function getIniKey(ByRef Inifile As String, ByRef SectionName As String, ByRef KeyName As String) As String
    Const iBufferSize As Integer = 1024
    Dim sBuffer As String
    Dim iKeyValueLength As Integer

    ' Buffer einrichten
1   On Error GoTo getIniKey_Error

2   sBuffer = String(iBufferSize, vbNullChar)
    ' Wert in Buffer schreiben und Buffer reduzieren
3   iKeyValueLength = GetPrivateProfileString(SectionName, KeyName, "Default", sBuffer, iBufferSize, Inifile)
4   getIniKey = Left$(sBuffer, iKeyValueLength)

QuitFunction:

5   On Error GoTo 0
6   Exit Function

getIniKey_Error:
    Dim ErrorNumber As Long
7   ErrorNumber = ErrorHandling(Err, Erl, "OfficeSettings", "getIniKey")
8   Err.Raise ErrorNumber, Err.source, Err.Description, Err.HelpFile, Err.HelpContext
End Function

黄色标记在第一行中

你这个第一行声明 getIniKey 的返回值是 String,你要确定你调用这个方法的接收类型是不是string

Private Function getIniKey(ByRef Inifile As String, ByRef SectionName As String, ByRef KeyName As String) As String