我在一个excel文件中有数百个公式。
我想写一些VBA
来搜索所有公式,并用一个单元格中定义的值替换另一个单元格中的先前值来替换部分公式。
例如,单元格B4
包含:
B4 = P5 2017
B5
包含:
B5 = P6 2018
我希望它使用该值对包含任何文本的所有公式进行替换,这些文本具有B4
中的先前值,例如:
[FileA P5 2017.xlsm]
并替换为B5
中的值:
[FileA P6 2018.xlsm]
文件的命名始终以FileA
开始,以.xlsm
结尾。
我有以下VBA
(有效),但是它包含一个文字值:
Sub FileNameUpdate()
Cells.Replace What:="FileA P5 2018", Replacement:= _
"FileA P6 2018", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase _
:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub
我需要它引用上述单元格,但无法使VBA
正常工作,就像这样:
Sub FileNameUpdate()
Cells.Replace What:="FileA $B$4", Replacement:= _
"FileA $B$5", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase _
:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub
也尝试过:
Sub FileNameUpdate()
Cells.Replace What:="FileA " & B4 & ".xlsm", Replacement:= _
"FileA " & B5 & ".xlsm", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase _
:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub
答案 0 :(得分:2)
尝试
Sub FileNameUpdate()
Cells.Replace What:=Range("B4") & ".xlsm", Replacement:=Range("B5") & ".xlsm", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
End Sub