【发布时间】:2018-03-06 21:40:32
【问题描述】:
我不知道下面的代码有什么问题,正在寻找解决方案或任何提示。
目标是在 2 个单独的工作表中命名 8 个单独的范围,并创建一个查找和替换功能。
- 4 个范围是 Excel 图表的一部分,该图表使用索引匹配公式,因此需要查找和替换函数来更新其值。
- 剩余的 4 个范围只是 4 个单元格,我用来引用公式中要查找的内容并将其替换为(topFind、topReplace、subFind 和 subReplace)。
工作表也已命名,但在引用前 4 个 Excel 范围(topAR、topExp、subAR 和 subExp)时收到错误消息,无法使用“查找和替换”功能。
我欢迎您提供任何帮助。提前谢谢!
Sub FindReplace()
Dim topAR, topExp, subAR, subExp As Range
Dim topFind As Variant, topReplace As Variant
Dim subFind As Variant, subReplace As Variant
Dim wsTop As Worksheet, wsSub As Worksheet
wsTop = Workbook.Sheets("Top-20")
wsSub = Workbook.Sheets("Top US Sub-IG")
Set topAR = wsTop.Range.Cells("C8:E28")
Set topExp = wsTop.Range.Cells("M8:O28")
Set subAR = wsSub.Range.Cells("D7:F22")
Set subExp = wsSub.Range.Cells("L7:N22")
topFind = wsTop.cell.Location("H2")
topReplace = wsTop.cell.Location("I2")
subFind = wsSub.cell.Location("H2")
subReplace = wsSub.cell.Location("I2")
Range.topAR.Replace What:="topFind", Replacement:="topReplace", LookAt:= _
xlPart, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Range.topAR.Replace What:="subFind", Replacement:="subReplace", LookAt:= _
xlPart, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False,
ReplaceFormat:=False
End Sub
【问题讨论】:
-
从“设置”工作表对象开始:set wsTop = Workbook.Sheets("Top-20") / Set wsSub = Workbook.Sheets("Top US Sub-IG")
-
显式“Dim”所有变量,否则未显式声明的值将被视为 Variant 类型:Dim topAR As Range, topExp As Range, subAR As Range, subExp As Range
标签: vba excel excel-formula