我正在尝试让宏在所有工作表上执行查找和替换功能,但保存该表的工作表包含查找和替换值。但是,执行宏后,它将替换表中的值,而不替换其余工作表中的值。
我从一个网站上提取了此代码:
https://www.thespreadsheetguru.com/the-code-vault/2014/4/14/find-and-replace-all
因为他们正在努力实现我的相同目标,但这没有用。我的修改了一下,因为最初我的数据格式不同,但是我更改了数据以匹配网站输入,尽管它仍然无法正常工作。
我尝试使用Worksheets.Count方法,并使用i = 2循环到ws_count并将find&replace表放置为第一张表,但是这也失败了。我还尝试了选择案例方法,但同样失败了。
我想知道是否更改了某些背景设置,这会阻止它识别工作表名称?不确定问题出在哪里,因为我的格式设置似乎与询问基本相同问题的已解决问题完全相同。
Dim ws As Worksheet
Dim FindList As Long, ReplaceList As Long
Dim tbl As ListObject
Dim ReplaceArray As Variant
Dim j As Long
'Variable pointing to table
Set tbl = Worksheets("DataSheet").ListObjects("ReplaceTable")
'Code here loads table data into array
'Loop through each item in Array lists
For i = LBound(ReplaceArray, 1) To UBound(ReplaceArray, 2)
'Loop through each worksheet in ActiveWorkbook except data sheet
For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> "DataSheet" Then
ws.Cells.Replace What:=ReplaceArray(FindList, i), Replacement:=ReplaceArray(ReplaceList, i), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
End If
Next ws
Next i
理想的输出,即在表中的查找列表中定义的值,将被替换表上除包含表的表之外的所有表中的值取代。