如何获取工作表名称以立即更新到Excel 2007上另一个工作表上的单元格中找到的信息

时间:2013-07-17 11:41:26

标签: excel excel-2007

我想用来自Excel 2007中另一个工作表的单元格中的信息更新我的工作表名称。我只想更改特定工作表名称(不是工作簿中的所有工作表),这些工作表的信息将来自单元格内的单元格相同的工作表。我希望在单元格更改后立即对工作表名称进行这些更改。

感谢。

2 个答案:

答案 0 :(得分:0)

您想使用类似

的内容
Sub changeName()

   ThisWorkbook.Sheets("nameToBeChanged").Name = ThisWorkbook.Sheets("secondSheetName").Range("A1").Value

End Sub

这将使用工作表secondSheetName中的单元格A1的值作为名为nameToBeChanged的工作表的名称。

不要忘记工作表名称中不允许使用以下字符(即单元格A1不得包含以下字符):

\ / ? * [ ] < > " | :

工作表名称的最大长度为31个字符


然后,只要更改单元格的值,就可以使用事件。您可以从以下代码开始:

Private Sub Worksheet_Change(ByVal Target As Range)

    MsgBox "Value changed for cell: " & Target.Address        
    Call changeName

End Sub

您需要将该代码放在您希望收听事件的工作表中(当然在VBA窗口内)。

您可能会发现Santosh的post有用


编辑:以下是Santosh的图片(请参阅上面的链接)。它会准确显示代码的放置位置:
Where to place the code

如您所见,代码放在名为Sheet1的项目中(箭头指向的位置)。在这种情况下,由于代码放在Sheet1中,每个修改过的单元格都会调用子工作表_Change。

答案 1 :(得分:0)

好像你没有尝试过多。

您可以使用其名称和Worksheets集合访问工作表。然后,您可以使用任何范围来访问包含您要检索的信息的单元格。假设它在B2单元格中:

Worksheets("ChangeMyName").Name = Worksheets("SomeOtherSheet").Range("B2")

要在更改单元格后立即更改,您必须实现Change事件并将Target单元格与要查看的单元格进行比较。

http://msdn.microsoft.com/en-us/library/office/ff839775.aspx