我正在尝试记录一个简单的宏,以在所有工作簿中找到<0.01和<0.1(匹配整个单元格内容),且值为0。当我运行宏时,它第一次起作用。当我重新加载工作表时,宏似乎默认情况下只是从当前工作表中查找/替换而忽略工作簿的其余部分。
任何人都可以帮忙。下面是简单的代码。
Sub Macro1()
'
' Macro1 Macro
'
'
Cells.Replace What:="<0.01", Replacement:="0", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Replace What:="<0.1", Replacement:="0", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
答案 0 :(得分:1)
问题在于用户界面可以区分...
但是,如果您在这两种情况下都记录了宏,则代码看起来将完全相同。这意味着您无法通过代码正确反映这种差异。该代码将执行用户界面最后执行的操作。
唯一解决此问题的方法是遍历工作簿中的所有工作表,并在每个工作表中明确替换:
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Cells.Replace … 'your 1. replace code here
ws.Cells.Replace … 'your 2. replace code here
Next ws