जब मैं अपने कोड का उपयोग करता हूं, और मैं Array = "0-28" के साथ चलता हूं, तो Arrex "28" के बराबर आता है जो कि मैं चाहता हूं। हालांकि जब मैं ऐरे = "0-2" का उपयोग करके दौड़ता हूं, तो अर्रेक्स "-2" के साथ आता है। यह वह नहीं है जो मैं चाहता हूं क्योंकि मैं वही चाहता हूं जो हाइफ़न के दाईं ओर है। मैंने सोचा था कि जब मैं हाइफ़न की तलाश कर रहा था तो सही कार्य स्ट्रिंग के दाईं ओर ले जाएगा लेकिन मैंने कहीं गड़बड़ कर दी होगी। किसी भी मदद की बहुत सराहना की जाएगी

मैंने Arrex = Right (TestText, DashSearch +1) और Arrex = Right (TestText, DashSearch -1) को देखा, लेकिन ये दोनों अपेक्षित रूप से विफल रहे।

Dim Array As String
Dim Arrex As String
Dim DashSearch As Integer

TestTextOne = "0-2" 'First Test
TestTextTwo = "0-28" 'Second Test
DashSearch = InStr(TextTestOne, "-")
If (DashSearch > 0) Then
Arrex = Right(TextTestOne, DashSearch)
Else
Arrex = TextTestOne
End If
0
Hakon 11 जून 2019, 20:17

2 जवाब

सबसे बढ़िया उत्तर

मैं स्प्लिट का उपयोग करूंगा, जो एक डिलीमीटर का उपयोग करके विभाजित होगा, उदा।

Sub x()

Dim Array1 As String
Dim Arrex As String
Dim DashSearch As Variant

Array1 = "0-2" 'First Test
'Array1 = "0-28" 'Second Test
DashSearch = Split(Array1, "-")

If UBound(DashSearch) > 0 Then
    Arrex = DashSearch(1)
Else
    Arrex = Array1
End If

End Sub

आप इसे सूत्रों के साथ कर सकते हैं - बाएँ/मध्य/दाएँ और ढूँढें।

=IFERROR(MID(A1,FIND("-",A1)+1,255),A1)
3
SJR 11 जून 2019, 20:24

अपने कोड को ठीक करने के लिए आपको राइट एडजस्ट करने की जरूरत है, और कुछ नहीं

Option Explicit

Sub TestIt()
    Dim vArray As String
    Dim Arrex As String
    Dim DashSearch As Integer

    vArray = "0-2" 'First Test
    vArray = "0-28" 'Second Test
    DashSearch = InStr(1, vArray, "-", vbTextCompare)
    If (DashSearch > 0) Then
        Arrex = Right(vArray, Len(vArray) - DashSearch)
    Else
        Arrex = vArray
    End If
End Sub
1
Storax 11 जून 2019, 20:26