从上一个问题开始,要根据单元格引用更改动态重命名工作表,请使用以下命令:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "C3" Then ActiveSheet.name =
ActiveSheet.Range("C3")
End Sub
但是如果单元格(“C3”)位于工作表1中但是本身引用另一个工作表上的单元格,那么这不起作用 - 假设C3在“工作表2”中引用“A1”。
如何更改代码,以便在工作表2中编辑A1时,工作表1的名称会自动更新?
谢谢!
答案 0 :(得分:2)
在“Sheet2”工作表模块中的Worksheet_Change
事件中添加以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
' only run the code if the cell being modified is in cell "A1"
If Not Intersect(Range("A1"), Target) Is Nothing Then
Worksheets("Sheet1").Name = Target.Value
End If
End Sub
答案 1 :(得分:0)
或者将此代码放在Sheet1 Module ...
上Private Sub Worksheet_Calculate()
On Error Resume Next
Sheet1.Name = Range("C3").Value
End Sub
注意:此处的Sheet1是图纸代码名称。 因此,每次在Sheet2上更改A1的值时,将重命名Sheet1。