首页 > 解决方案 > 为大量工作表更改单元格公式中的工作表引用

问题描述

我有大量的原始数据表(称为 Data1、Data2 等),我想创建大量用于操作这些数据的干净数据表(Clean1、Clean2 等)。每个工作表 Clean'i' 仅引用文件 Data'i' 中的数据。

我编写了一个宏来创建名为 Clean2、Clean3 等的工作表 Clean1 的许多副本,我现在要做的是将公式中的“Data1”替换为工作表 Clean2 中的“Data2”以及所有其他工作表。

如果它只是一个工作表,我可能会做这样的事情:

For Each cell In Range("A1:E9")
  If cell.Formula = "Data1" Then _
     cell.Formula = "Data2"
Next cell
End Sub

但我不知道如何创建一个循环,表明如果我在工作表 Clean3 我想用 Data3 替换 Data1(即基本上引用我正在循环的工作表名称的一部分并在我的表达式中使用它更换)

标签: excelvba

解决方案


迭代工作表并使用替换:

Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
    If wks.Name Like "Clean*" Then
        wks.Range("A1:E9").Replace "Data1", "Data" & Replace(wks.Name, "Clean", "")
    End If
Next wks

推荐阅读