通过excel宏替换公式的参考工作

时间:2016-09-09 02:27:06

标签: excel vba excel-vba macros excel-formula

我有一个生成新工作表的按钮。我已经知道如何传递活动工作表的名称(单击按钮的原点)。这是我的问题。

我有一张名为" A"的工作表。单击按钮时,它将生成另一个工作表" Print"基于活动工作表" A"。它意味着" Print"中的细胞配方。表格参考" A" (例如,' A'!B1)。

现在我有一个名为" B"的工作表。因此,当我点击按钮时,它应该替换" A"在" Print"中的所有单元格的公式中工作表。我有以下代码,但似乎替换中的通配符不起作用。

For Each cell In ActiveSheet.Range("A1:C6")
    cell.Formula = Replace(cell.Formula, "'*'", "'" + shtName + "'")
Next

其中shtName等于ActiveSheet(A或B)的名称。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

For Each cell In ActiveSheet.Range("A1:C6")
    cell.Formula = "'" & shtName & "'" & Right(cell.Formula, _ 
                           len(cell.Formula)-instrrev(cell.Formula, "'"))
Next

答案 1 :(得分:0)

在Google中进行多次5页搜索后,似乎"替换"功能并不能很好地使用通配符。相反,我使用"替换"方法

 For Each cell In ActiveSheet.Range("A1:C6")

cell.Replace What:="'" + "*" + "'", Replacement:="'" + shtName + "'", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, 
 SearchFormat:=False, ReplaceFormat:=False    

Next

答案 2 :(得分:0)

根据旧工作表名称(shtName),公式可以引用 <img src="<?php echo get_theme_mod( 'm1_logo' ); ?>" alt="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>"> shtName!。在这里,我创建一个定义的名称,以获得正确的参考。下一个'shtName'!用于更新目标范围内的所有单元格。

enter image description here

Range().Replace