我想用来自Excel 2007中另一个工作表的单元格中的信息更新我的工作表名称。我只想更改特定工作表名称(不是工作簿中的所有工作表),这些工作表的信息将来自单元格内的单元格相同的工作表。我希望在单元格更改后立即对工作表名称进行这些更改。
感谢。
答案 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的图片(请参阅上面的链接)。它会准确显示代码的放置位置:
如您所见,代码放在名为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