VBA – Excel(2013)如何在每张表中查找相同的值,但在每张表中replace为不同的值?

我有一个有93个预算的工作簿(每张一张)。 这些表使用vlookups来拉取其他预算Excel文件的值。 我通过制作原始预算单的重复项,然后重新命名,创build了这些表。

目前,所有工作performance在都在查找来自同一个文件的值,但我需要他们从不同的文件中查找值。 93个预算文件中的查找范围相同。 我想要做一个查找和replace,在每个选项卡(budgetcode.xlsx)中查找相同的值,并用每个表不同的新值进行replace。

我发现下面的代码适用于1张工作表,我需要运行这个93次(在这个工作簿中需要一段时间)。 有没有办法更新它来运行所有93张表,并用每个表中的某个单元格中的值replace“预算代码”?

Sub Macro1() Application.EnableEvents = False Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Range("E3:CN9254").Select Selection.Replace What:="", Replacement:="0", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False Application.EnableEvents = True Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.CalculateFull End Sub 

任何帮助都感激不尽!!

这段代码应该给你一个非常好的shell。 我做了一些明显的假设,你需要改变以反映你的实际数据结构。 我现在唯一能想到的一点是确保在replace文件名时确保文件path存在于驱动器上,否则会出现很长的恼人的popup列表,寻找有效的每个项目要replace的文件path。

 Option Explicit Sub ChangeFileNameInFormula() Application.ScreenUpdating = False Dim ws as Worksheet For each ws in ThisWorkbook.Worksheets Dim sBudgetCode as String sBudgetCode = ws.Range("A1") 'change to the cell that contains the budget code ws.Range("E3:CN9254").Replace What:="OriginalFileName", Replacement:=sBudgetCode, LookAt:=xlPart Next End Sub