Excel 粘贴后自动替换列中的文本

Excel 粘贴后自动替换列中的文本,excel,vba,Excel,Vba,当我运行宏时,下面的代码正在正确替换该值。但是,我希望在将值或字符串粘贴到单元格中后立即运行此宏。。。。意味着当我粘贴一个值时,它应该自动更改/替换该值,而无需按下宏上的“运行”按钮。。。 例如,当我在sheet1 FHH、FGA中粘贴数据时,它应该自动替换为“FST”、“FPT”。。。。如粘贴后自动更换 Sub Multi_FindReplace() Dim sht As Worksheet Dim fndList As Variant Dim rplcList As Variant Dim

当我运行宏时,下面的代码正在正确替换该值。但是,我希望在将值或字符串粘贴到单元格中后立即运行此宏。。。。意味着当我粘贴一个值时,它应该自动更改/替换该值,而无需按下宏上的“运行”按钮。。。 例如,当我在sheet1 FHH、FGA中粘贴数据时,它应该自动替换为“FST”、“FPT”。。。。如粘贴后自动更换

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

我会将此代码放在Thisworkbook,Workbook\u Sheetchange事件中。 它的优点是,您不必在所有工作表中输入,也不必在所有工作表中循环

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

您尝试过做什么来实现/启用该功能?尝试执行此操作,如果遇到问题或遇到困难,请再次询问您尝试执行的操作/使其发生。要启用什么?您可以使用
工作表\u Change
事件运行替换。