簡體   English   中英

Excel:基於另一個工作表中的單元格值動態更改工作表標簽

[英]Excel: Dynamically change sheet tag based on cell value in another sheet

我正在嘗試根據另一個工作表(“標題”工作表)中的單元格值動態更改工作表標簽名稱。 當我在同一張紙上進行更新時,動態更改效果很好,並且在更改單元格值后按Enter鍵進行更改。 但是,當參考單元格位於另一張工作表中時,按Enter鍵后,工作表標簽不會發生變化,直到我主動訪問要更新的工作表並單擊工作表。 反正有解決這個問題的方法嗎? 我大約有20張紙,因此在進行更改時單擊每張紙會很費力。 這是我的代碼:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Set Target = Worksheet("Title").Range("A1")
    If Target = "" Then Exit Sub
    On Error GoTo Badname
    ActiveSheet.Name = Left(Target, 31)
    Exit Sub
Badname:
    MsgBox "Please revise the entry in A1." & Chr(13) _
    & "It appears to contain one or more " & Chr(13) _
    & "illegal characters." & Chr(13)
    Range("A1").Activate
End Sub

我的另一個選擇是添加一個更新按鈕來執行更改,但是如果可能的話,我想避免這種情況。

任何建議,將不勝感激!

因此,您大約有20張左右的工作表,因此在進行更改時單擊每個工作表會很麻煩。 為什么不遍歷所有工作表以刷新更改? :)

就像是:

Dim sht As Worksheet
Application.ScreenUpdating = False
For Each sht In Worksheets
  sht.Activate
Next
Application.ScreenUpdating = True

HTH;)

按照要求

因為您的代碼適用於特定的工作表更改。 因此,如果您在Sheet1中有此代碼,則只有當您在sheet1中進行更改時,此代碼才會起作用。 可以將此代碼添加到所有工作表的后面,也可以只使用工作簿級別工作表更改事件Private Sub Workbook_SheetChange(ByVal Sh作為對象,ByVal目標作為范圍),您可以在工作簿對象中訪問它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM