मैक्रो Excel 2010 का उपयोग करके शाखाओं के बीच पाठ को प्रारूपित कैसे करें


3

मुझे एक्सेल में "[" और "]" लाल के बीच के सभी पाठ को बदलने के लिए थोड़ा मैक्रो मिला। लेकिन मुझे यह एक्सेल 2010 में काम करने के लिए नहीं मिल सकता है, मुझे कुछ त्रुटियां हैं।

किसी ने मुझे यह डिबग मदद कर सकते हैं? अंत में मेरी इच्छा है कि मेरी एक्सेल शीट में "[" और "]" के बीच का फॉन्ट लाल में बदल जाए और इन मानदंडों से बाहर की हर चीज अभी भी काली है।

यह इस साइट पर मुझे मिली स्क्रिप्ट है:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Text As String
    Dim Index1 As Long
    Dim Index2 As Long
    Text = Target.Text
    Index2 = 1
    Do
        Index1 = InStr(Index2, Text, "[")
        If Index1 = 0 Then Exit Do
        Index2 = InStr(Index1, Text, "]")
        If Index2 = 0 Then Exit Do
        Target.Characters(Index1, Index2 - Index1 + 1).Font.Color = &HFF
    Loop
End Sub

त्रुटि को जाने बिना, यह सुनिश्चित करना असंभव है, लेकिन मैंने इसे नीचे एक शॉट दिया है।
j_foster

जवाबों:


1

विचार करें:

Sub ColorMeRed()
   Dim r As Range, v As String, L As Long
   Dim RedMe As Boolean, i As Long
   For Each r In ActiveSheet.UsedRange
      v = r.Text
      If InStr(v, "[") > 0 Then
         L = Len(v)
         RedMe = False
         For i = 1 To L
            If r.Characters(i, 1).Text = "[" Then
               RedMe = True
            ElseIf r.Characters(i, 1).Text = "]" Then
               RedMe = False
            Else
               If RedMe Then r.Characters(i, 1).Font.Color = vbRed
            End If
         Next i
      End If
   Next r
End Sub

उदाहरण के लिए:

enter image description here


कोड अच्छा thx अलॉट लगता है, क्या मैं इन {*} और als के बीच एक विकल्प भी जोड़ सकता हूं जो लाल रंग का हो? मैंने "या" फ़ंक्शन के बारे में सोचा, लेकिन फिर मुझे डीबग फिर से मिलता है।
Dubblej

@ डब्बल कोड को दोहरे चरित्र से संशोधित करना होगा अगर एक फ्लिप फ्लॉप के लिए अगर।
Gary's Student

मैंने फ्लिप-फ्लॉप की तलाश की, तो क्या आप मुझे एक संदर्भ दे सकते हैं, जहां मुझे इसके बारे में जानकारी मिल सकती है? अगर मैं एक समान अनुरोध वाले लोगों के लिए कर रहा हूं तो मैं यहां कोड पोस्ट करूंगा।
Dubblej

@ डबल्ज मैं आज बाद में अपना उत्तर अपडेट करूंगा।
Gary's Student

0

लाइन बदलो

Index1 = InStr (Index2, Text, "[")

सेवा मेरे

Index1 = InStr (पाठ, "[")

पहला संस्करण Index2 की स्थिति में खोज शुरू करने की कोशिश कर रहा है। चूंकि Index2 में कोई मान असाइन नहीं किया गया है, यह 0 के बराबर है; लेकिन InStr स्ट्रिंग के पहले कैरेक्टर को कैरेक्टर 1 मानता है। बदले हुए वर्जन में InStr की शुरुआत स्ट्रिंग से होती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.