![](/img/trans.png)
[英]A List From Same Cells Across Multiple Sheets In Excel with sheet names
[英]Excel - sheet names equal to cell (but the cells giving name to the sheets are all in the same sheet)
我想知道是否可以使工作表名稱等於一個工作表的特定單元格。
例如:
我有一張叫名字的表
A1 = Name1
A2 = Name2
A3 = Name3
A4 = Name4
A5 = Name5
因此,工作表名稱應基於這五個值
Sheet2 = Name1
Sheet3 = Name2
Sheet4 = Name3
Sheet5 = Name4
Sheet6 = Name5
VBA是否可以?
預先感謝您的任何幫助。
Sheets(#).Name = Range("cell location").Value
#
表示工作表索引號, cell location
是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)將以下代碼放在“名稱”選項卡的工作表對象中。
2)將所有工作表代碼名稱放在第一列的“名稱”工作表中(無標題)。
3)將您選擇的選項卡名稱放在第二欄中。
當您更改第二列中的值時,工作表名稱應自動更改。
碼
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.