2014-12-24 110 views

回答

-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 
+0

這樣做。謝謝 :) –

0
Sheets(#).Name = Range("cell location").Value 

#指的是紙張的索引號和cell location是小區的地址(例如A2E17

你會想然而,因爲它會放一些錯誤周圍的處理如果您已經有一個同名的工作表,則出錯:

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 
+0

謝謝您的回答:)。你可以把完整的代碼?我是VBA的初學者,我會檢查如何處理錯誤,謝謝你的提示 –

+0

不要忘記接受,如果它的工作。 – Chrismas007

+0

@SergeInácioStack Overflow是代碼編寫人員獲取特定問題幫助的地方。一般來說,它不是爲用戶編寫整個代碼而設計的。我的答案將解決您的具體問題,但如果您正在尋找某人爲您編寫代碼,您可能不得不尋找其他地方。我爲你添加了一個示例錯誤處理程序,但對於其他代碼,您將自行編寫。 – Chrismas007

相關問題