जब मैं मैक्रो चलाता हूं तो मेरा नीचे दिया गया कोड मान को ठीक से बदल रहा है। हालांकि, मैं चाहता हूं कि यह मैक्रो सेल में वैल्यू या स्ट्रिंग पेस्ट करने के तुरंत बाद चले .... इसका मतलब है कि जैसे ही मैं एक वैल्यू पेस्ट करता हूं, मैक्रो पर बटन चलाने के लिए पुश किए बिना इसे स्वचालित रूप से मान को बदलना/बदलना चाहिए ... के लिए उदाहरण जब मैं शीट 1 एफएचएच, एफजीए में डेटा पेस्ट करता हूं तो इसे स्वचालित रूप से इसे "एफएसटी", "एफपीटी" बदल देना चाहिए ... चिपकाने के बाद ऑटो की तरह।

Sub Multi_FindReplace()

Dim sht As Worksheet
Dim fndList As Variant
Dim rplcList As Variant
Dim x As Long

fndList = Array("FHH", "FGA")
rplcList = Array("FST", "FPT")

'Loop through each item in Array lists
  For x = LBound(fndList) To UBound(fndList)
    'Loop through each worksheet in ActiveWorkbook
      For Each sht In ActiveWorkbook.Worksheets
        sht.Cells.replace What:=fndList(x), Replacement:=rplcList(x), _
          LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
          SearchFormat:=False, ReplaceFormat:=False
      Next sht
  
  Next x

End Sub

The below should auto-replace the value in column 2 after pasting

0
Akshay Chari 5 सितंबर 2020, 17:13

1 उत्तर

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

मैं इस कोड को इस वर्कबुक, वर्कबुक_शीटचेंज इवेंट में रखूंगा। इसके फायदे हैं कि आपको सभी शीट में डालने की ज़रूरत नहीं है और आपको सभी शीट्स के माध्यम से लूप नहीं करना है।

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim fndList As Variant
    Dim rplcList As Variant
    Dim x As Long
    fndList = Array("FHH", "FGA")
    rplcList = Array("FST", "FPT")
    'Loop through each item in Array lists
    For x = LBound(fndList) To UBound(fndList)
          Target.Replace What:=fndList(x), Replacement:=rplcList(x), _
            LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
            SearchFormat:=False, ReplaceFormat:=False
    Next x
End Sub
0
Viktor West 6 सितंबर 2020, 16:41