के बीच vba- निकालने पाठ उत्कृष्टता तो मैं इस स्तंभ था:2 वर्ण
ColA
-----
NUMBER(8,3)
NUMBER(20)
मैं एक VBA समारोह है कि जाना होगा (इन आरंभ और समाप्ति स्ट्रिंग ही कभी एक सेल में एक बार प्रकट होता ध्यान दें) की जरूरत है:
extract_val (सेल, start_str, end_str)
यानी। extract_val (A1, "(", ")") और परिणाम दे:
8,3
20
मैं केवल शीट पर एक सूत्र के रूप में इसके सामने नहीं अन्य VBA कोड के भीतर इस सुविधा का उपयोग करने की आवश्यकता है।
अद्यतन (उत्तर के लिए धन्यवाद, मैं बसे पर :)
---------------------------
Public Function extract_value(str As String) As String
Dim openPos As Integer
Dim closePos As Integer
Dim midBit As String
On Error Resume Next
openPos = InStr(str, "(")
On Error Resume Next
closePos = InStr(str, ")")
On Error Resume Next
midBit = mid(str, openPos + 1, closePos - openPos - 1)
If openPos <> 0 And Len(midBit) > 0 Then
extract_value = midBit
Else
extract_value = "F"
End If
End Function
Public Sub test_value()
MsgBox extract_value("NUMBER(9)")
End Sub
आप अन्यथा आप खुले ब्रैकेट से पहले एक बंद कोष्ठक मिल सकता है स्थिति जहां यह openPos पाया पर शुरू करने के लिए closePos लाइन बनाने के लिए चाहते हो सकता है, है, लेकिन अपने उदाहरण दिए गए इस संभावना नहीं है। – harag
थोड़ा ऑफ-स्कोप संकेत: http://stackoverflow.com/questions/2757477/trap-error-or-resume-next –