में ByRef तर्क प्रकार मेल नहीं है मैं वीबीए के साथ काम कर रहा हूं। मैंने एक उपयोगकर्ता को परिभाषित फ़ंक्शन लिखा है जो string
लेता है, इसे संसाधित करता है और string
साफ़ करता है। मुझे यकीन नहीं है कि इसमें क्या गलत है। मैं इसे कॉल करने में सक्षम नहीं हूं और इसे अपनी स्ट्रिंग को संसाधित करने और इसे वापस करने के लिए कहता हूं। मैं सोच रहा हूं कि जिस तरह से मैं परिभाषित कर रहा हूं या इसे वापस कर रहा हूं, वहां कोई गलती है।एक्सेल वीबीए
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
और मैं इस
Worksheets(data_sheet).Range("C2").Value = ProcessString(last_name)
अंतिम नाम की तरह इस फ़ंक्शन का उपयोग एक स्ट्रिंग चर रहा है, आम तौर पर इस Lastname*****
की तरह लग रहा है, और मैं इसके पीछे सभी सितारों को दूर करने की कोशिश कर रहा हूँ। सितारों के बिना Lastname
वापस करें।
मुझे Compile error: ByRef arugment type mismatch
प्राप्त हुआ जब मैंने इसे चलाने की कोशिश की। मैं विंडोज 2003 के साथ विंडोज एक्सपी का उपयोग कर रहा हूं।
संपादित करें: मैंने अपने कोड के मूलभूत स्ट्रक्चर को जोड़ा है, मेरे पास समान कोड की लगभग 20 पंक्तियां हैं। मुझे आवश्यक प्रत्येक फ़ील्ड के लिए एक ही चीज़ करना।
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)
किस लाइन पर एरो आर झंडा? – Gaffi
जब मैं इसे कॉल करता हूं तो यह लाइन पर फहराया जाता है। 'वर्कशीट्स (डेटा_शीट) .ेंज ("सी 2")। वैल्यू = प्रोसेस स्ट्रिंग (last_name) ' – George