使用 VBA 替换整本书中 Excel 公式中的所有实例?
Replace all instances of something in Excel formulas in the entire book using VBA?
整本书每个sheet的每个单元格的每个公式中,我想替换部分公式字符串,将所有“+”更改为“-”,有没有简单的方法这在 VBA 如果我有一个特定的工作簿对象 xlWb
?
我正在尝试:
xlWb.Cells.Replace What:="+", Replacement:="-", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
但得到“对象不支持此 属性 或方法”
工作簿没有单元格,只有工作表有。这会导致您的运行时错误。我觉得你的 Replace-command 本身没问题。
只需遍历工作簿的所有工作表即可解决问题:
Dim ws As Worksheet
For Each ws In xlWb.Worksheets
ws.Cells.Replace What:="-", Replacement:="+", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False _
, FormulaVersion:=xlReplaceFormula2
Next
(如果我在你那里,我会在 运行 宏之前备份工作簿...)
整本书每个sheet的每个单元格的每个公式中,我想替换部分公式字符串,将所有“+”更改为“-”,有没有简单的方法这在 VBA 如果我有一个特定的工作簿对象 xlWb
?
我正在尝试:
xlWb.Cells.Replace What:="+", Replacement:="-", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
但得到“对象不支持此 属性 或方法”
工作簿没有单元格,只有工作表有。这会导致您的运行时错误。我觉得你的 Replace-command 本身没问题。
只需遍历工作簿的所有工作表即可解决问题:
Dim ws As Worksheet
For Each ws In xlWb.Worksheets
ws.Cells.Replace What:="-", Replacement:="+", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False _
, FormulaVersion:=xlReplaceFormula2
Next
(如果我在你那里,我会在 运行 宏之前备份工作簿...)