我想知道是否可以让工作表名称等于一张特定单元格。
例如:
我有一张名为
的表格A1 = Name1
A2 = Name2
A3 = Name3
A4 = Name4
A5 = Name5
因此,工作表名称应基于这五个值
Sheet2 = Name1
Sheet3 = Name2
Sheet4 = Name3
Sheet5 = Name4
Sheet6 = Name5
这可以用VBA吗?
提前感谢您的帮助。
答案 0 :(得分:0)
Sheets(#).Name = Range("cell location").Value
#
是指单张索引编号,cell location
是单元格的地址(例如A2
或E17
)
你会想要对它进行一些错误处理,但是因为如果你已经有一个同名的工作表会出错:
On Error Resume Next
Sheets(#).Name = Range("cell location").Value
If Err.Number > 0 Then
Err.Clear
Msgbox Range("cell location").Value & " name already exists!"
End If
答案 1 :(得分:-1)
你可以让事件触发。
1)将以下代码放在“名称”标签的工作表对象中。
2)将所有工作表code names放在第一列的“名称”表格中(无标题)。
3)在第二栏中为相应的工作表选择您选择的标签名称。
更改第二列中的值时,工作表名称应自动更改。
<强> CODE 强>
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sheetName As String
Dim sheetCodeName As String
If Target.Column = "2" Then
sheetName = Target.value
sheetCodeName = Target.Offset(0, -1).value
For Each Sheet In ActiveWorkbook.Worksheets
If Sheet.CodeName = sheetCodeName Then
On Error GoTo INVALIDCOLUMNNAME:
Sheet.name = sheetName
On Error GoTo 0
End If
Next Sheet
End If
Exit Sub
INVALIDCOLUMNNAME:
msgbox "Invalid Column Name"
End Sub