ByRef argument type mismatch in Excel-VBA

Ich arbeite mit VBA. Ich schrieb ein user define-Funktion ein string -, Prozess-und auch wieder gereinigt string. Ich bin nicht sicher was ist falsch mit ihm. Ich bin nicht in der Lage, es zu nennen und zu bitten, es zu verarbeiten, meinen string und gibt ihn zurück. Ich denke es gibt einen Fehler in der Art, wie ich bin, definieren oder Rückgabe.

Public Function ProcessString(input_string As String) As String
    ' The temp string used throughout the function
    Dim temp_string As String

    For i = 1 To Len(input_string)
        temp_string = Mid(input_string, i, 1)
        If temp_string Like "[A-Z, a-z, 0-9, :, -]" Then
            return_string = return_string & temp_string
        End If
    Next i
    return_string = Mid(return_string, 1, (Len(return_string) - 1))
    ProcessString = return_string & ", "
End Function

Und ich verwenden Sie diese Funktion wie folgt

Worksheets(data_sheet).Range("C2").Value = ProcessString(last_name)

Letzte name ist ein string-variable, in der Regel sieht wie folgt aus Lastname*****, und ich bin versucht, entfernen Sie alle die Sterne dahinter. Haben es zurück Lastname ohne stars.

Erhielt ich Compile error: ByRef arugment type mismatch wenn ich versuchte zu laufen. Ich benutze Windows XP mit Office 2003.

EDIT: ich habe den basic-struction von dem code, den ich habe, habe ich etwa 20 Zeilen der gleiche code. Tun die gleiche Sache für jeden Bereich, die ich brauche.

Private Sub CommandButton2_Click()
' In my original production code I have a chain of these
' Like this Dim last_name, first_name, street, apt, city, state, zip As String
Dim last_name As String

' I get the last name from a fixed position of my file. Because I am 
' processing it from another source which I copied and pasted into excel
last_name = Mid(Range("A4").Value, 20, 13)

' Insert the data into the corresponding fields in the database worksheet
Worksheets(data_sheet).Range("C2").Value = ProcessString(last_name)
Auf welcher Zeile tritt der Fehler flag?
Es flaged auf der Linie, wenn ich es nennen. Worksheets(data_sheet).Range("C2").Value = ProcessString(last_name)

InformationsquelleAutor George | 2013-05-17

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.