Excel-使用VBA代码替换公式中日期表单中的工作表名称
正如可能令人困惑的标题所说,我正在为工作簿编写一套自动化工具,我遇到了一个障碍 我有一个函数可以生成一个新工作表,并将当前日期指定为名称,格式为“dd-mm-yyyy”(不带引号),还有一个函数可以更新新工作表中所有必需的公式 有一列用于计算当前图纸和上一张图纸之间列中的值之间的差值。运行时,代码将执行并替换名称,但由于某些原因,仅将年份指定为图纸名称,而不是整个日期。这将导致无效的引用错误 例如: 前页名称:23-5-2019 当前页名称:25-5-2019Excel-使用VBA代码替换公式中日期表单中的工作表名称,excel,vba,properties,Excel,Vba,Properties,正如可能令人困惑的标题所说,我正在为工作簿编写一套自动化工具,我遇到了一个障碍 我有一个函数可以生成一个新工作表,并将当前日期指定为名称,格式为“dd-mm-yyyy”(不带引号),还有一个函数可以更新新工作表中所有必需的公式 有一列用于计算当前图纸和上一张图纸之间列中的值之间的差值。运行时,代码将执行并替换名称,但由于某些原因,仅将年份指定为图纸名称,而不是整个日期。这将导致无效的引用错误 例如: 前页名称:23-5-2019 当前页名称:25-5-2019 Sub Macro3() to_r
Sub Macro3()
to_replace = Sheets(3).Name
replace_val = Sheets(2).Name
Cells.Replace What:=to_replace, Replacement:=replace_val, LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
当前表格中更改的公式应为:=C3-‘23-5-2019’!C3
但它却变成:=C3-23-5-‘2019’!C3
更换代码如下:
Sub FormulaUpdate()
range("D2:D100").Replace
What:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.count - 2).name,
Replacement:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.count - 1).name,
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
非常感谢您的帮助:)我无法在代码中复制这一点,当我将工作表(3)命名为23-5-2019,将工作表(2)命名为25-5-2019时,它与下面的工作方式一样
Sub Macro3()
to_replace = Sheets(3).Name
replace_val = Sheets(2).Name
Cells.Replace What:=to_replace, Replacement:=replace_val, LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
我建议一步一步地调试,确认要查找的文本值,并在其发生之前替换这些值
在执行查找/替换之前,还要确认已创建新图纸
希望有帮助