【问题标题】:Replacing text within formulae on Excel替换Excel公式中的文本
【发布时间】:2016-06-23 18:27:12
【问题描述】:

我有一个电子表格,其中包含标准数据表和一张用于计算的表格。我想设置它,以便宏搜索当前在计算中使用的数据表的名称,并将其替换为另一个数据表的名称。由于数据表具有相同的布局,因此公式中的其他任何内容都不需要更改,但是我很挣扎!这是我目前所拥有的:

Sub Replace_Text()

  Dim Findtext As String
  Dim Replacetext As String
  Findtext = "Front Sheet!B2"
  Replacetext = "Front Sheet!C2"
  Worksheets("Sheet 2").Range("K11:Z91").Replace what:=Findtext, replacement:=Replacetext, lookat:=xlPart, MatchCase:=False

如您所见,我正在尝试为文本提供一个单元格引用,以便任何人都需要更改的是这些单元格(B2、C2)中写入的内容,以获取新数据表的计算。

我认为错误在于引用要搜索的范围?由于我对使用 Excel 很陌生,我真的不知道还有什么可以尝试的。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您将传入一个字符串,其中包含查找值的位置,而不是值,所以findtext=worksheets("Front Sheet").range("b2").value

    【讨论】:

    • 好的,有道理,谢谢!不过,这行中仍然存在问题: Worksheets("Sheet 2").Range("K11:Z91").Replace what:=Findtext, replacement:=Replacetext, lookat:=xlPart, MatchCase:=False
    • 现在可以了,工作表名称中有一个空格!
    【解决方案2】:

    您只需要获取 B2 和 C2 的内容(实际上您可以省略 .value 但它似乎对我来说更清楚):-

    Sub Replace_Text()
    Dim Findtext As String
    Dim Replacetext As String
    Findtext = Worksheets("Front Sheet").Range("B2").Value
    Replacetext = Worksheets("Front Sheet").Range("c2").Value
    Worksheets("Sheet2").Range("K11:Z91").Replace what:=Findtext, replacement:=Replacetext, lookat:=xlPart, MatchCase:=False
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-21
      相关资源
      最近更新 更多