我有一个包含93个预算的工作簿(每张一个)。这些工作表使用vlookup来提取其他预算Excel文件的值。我通过制作原始预算表的副本来创建工作表,然后重命名它们。
目前,所有工作表现在都在查找同一文件中的值,但是我需要它们来查找不同文件中的值。查找发生的范围在93个预算文件的每个中都是相同的。我想在每个标签(budgetcode.xlsx)中查找和替换查找相同值的查找和替换,并将其替换为每张不同的新值。
我发现下面的代码适用于1张,我需要运行93次(这个工作簿需要一段时间)。有没有办法更新它以运行所有93张纸并替换'预算码'每个工作表中某个单元格中的值?
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
任何帮助都将不胜感激!!
答案 0 :(得分:1)
这段代码应该给你一个非常好的shell。我做了一些明显的假设,你需要改变以反映你的实际数据结构。我现在能想到的唯一警告是确保在替换文件名时确保驱动器上存在文件路径,否则,您将获得一个很长的烦人弹出窗口列表每个要替换的项目的有效文件路径。
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