繁体   English   中英

替换整个工作簿中的单元格值

[英]Replace the Cell Value throughout the Entire Workbook

我在整个工作簿中使用FndRplce()fnd = "Ilya Malikzada"替换为rplc = "Arham"的代码。

但是如何创建这样的代码:当我从下面的附图中更改任何名称时,该效果应该适用于整个工作簿。

例如, "Ilya Malikzada" A2有这个名字,所以当我在单元格A2 Arham上写字时,整个工作簿上的"Ilya Malikzada"应该替换为Arham

在此处输入图像描述

您的帮助将不胜感激。 谢谢

Sub FndRplce()

Dim sht As Worksheet
Dim fnd As Variant
Dim rplc As Variant
Dim ReplaceCount As Long

fnd = "Ilya Malikzada"
rplc = "Arham"

For Each sht In ActiveWorkbook.Worksheets

  ReplaceCount = ReplaceCount + Application.WorksheetFunction.CountIf(sht.Cells, "*" & fnd & "*")

  sht.Cells.Replace what:=fnd, Replacement:=rplc, _
    LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
    SearchFormat:=False, ReplaceFormat:=False
    
Next sht

End Sub

如果您希望名称输入成为变量,您可以专门引用单元格来执行此操作。 让它显而易见,以便用户知道这是输入。 我使用 Cell A1 ,但您可以相应地调整它和工作表名称。 这个参考可以是一个以 excel 命名的参考,只要你把它放在引号内

我所做的调整是对你的rplc线像这样

ActiveWorkbook.Sheets("YourSheetName").Range("A1").Value

Sub FndRplce()

Dim sht As Worksheet
Dim fnd As Variant
Dim rplc As Variant
Dim ReplaceCount As Long

fnd = "Ilya Malikzada"
rplc = ActiveWorkbook.Sheets("YourSheetName").Range("A1").Value

For Each sht In ActiveWorkbook.Worksheets

  ReplaceCount = ReplaceCount + Application.WorksheetFunction.CountIf(sht.Cells, "*" & fnd & "*")

  sht.Cells.Replace what:=fnd, Replacement:=rplc, _
    LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
    SearchFormat:=False, ReplaceFormat:=False
    
Next sht

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM