【发布时间】:2022-08-20 17:59:13
【问题描述】:
我正在尝试替换单元格中的部分公式。
我有一个 InputBox 来指定一个数字,以及一个替换函数来替换值。 (为了更好地衡量,我使范围包括带有公式的单元格和它周围的一些空白单元格。)
我的宏用新值填充空白单元格,但不替换 Excel 中所需的值。
我希望未更改的值是 XXXX,并允许用户输入他们自己的值,该值将与 Excel 文件对应以从中检索数据。
Sub Replace_XXXX_and_YYYY()
SN1 = InputBox(\"Enter 1st Serial Number\")
SN2 = InputBox(\"Enter 2nd Serial Number\")
Range(\"B9:B11\").Replace What:=XXXX, Replacement:=SN1
Range(\"B9:B11\").Replace What:=YYYY, Replacement:=SN2
End Sub
-
XXXX和YYYY变量(或常量)是否已在某处声明?还是您只是错过了引号 (\"XXXX\") 来真正替换字符串XXXX(并且也错过了使用 Option Explicit)? -
XXXX 和 YYYY 是占位符,因此公式会将 XXXX 和 YYYY 转换为输入的序列号,并使公式找到相应的文档。
-
不,我问的是您的 VBA 代码中的
XXXX是什么?我建议您将声明Option Explicit放在代码的顶部并编译它。 -
以下公式是我尝试使用 vba 代码更改的公式的一部分。我不能输入整个公式,因为我只能在这里输入这么多字符。 =IF(ROUND(MAX(\'[PN 4020-5 - SN XXXX.xlsx]Sheet1\'!$D$67,\'[PN 4020-5 - SN XXXX.xlsx]Sheet1\'!$D$78,\ '[PN 4020-5 - SN XXXX.xlsx]Sheet1\'!$D$89,\'[PN 4020-5 - SN XXXX.xlsx]Sheet1\'!$D$100,\'[PN 4020-5 - SN XXXX.xlsx]Sheet1\'!$D$111),4)>ROUND(MAX(\'[PN 4020-5 - SN YYYY.xlsx]Sheet1\'!$D$67,\'[PN 4020-5 - SN YYYY.xlsx]