Anonymous
Anonymous asked in 電腦與網際網路軟體 · 1 decade ago

SHEET名稱顯示問題

1如何在各個SHEET的A1儲存格顯示該SHEET的名稱

2相反的,如何使每個SHEET的名稱,自動以該SHEET的A1儲存格為名稱

麻煩高手幫個忙....謝謝哦~~

Update:

這個情形是在同時有數個sheet的情況下,如何一次即可完成,而不用每頁去點...

Update 2:

忘了補充,每頁的a1儲存格要同時改變欄寬為30

Update 3:

謝謝"一個人的咖啡"提供的意見

順便請問

Application.ScreenUpdating = False

For Each st In ThisWorkbook.Sheets

Application.ScreenUpdating = True

這三行的意思...可否約略說明一下下

感激感激~~^^

2 Answers

Rating
  • 1 decade ago
    Best Answer

    按alt+f11

    在左邊thisworkbook上點兩下

    將以下程式碼貼上

    Private Sub Workbook_Open()

    Application.ScreenUpdating = False

    Dim st As Worksheet

    For Each st In ThisWorkbook.Sheets

    st.Cells(1, 1) = st.Name

    st.Cells(1, 1).ColumnWidth = 30

    Next

    Application.ScreenUpdating = True

    End Sub

    每次開啟這檔案,會整理一次每一頁的a1及欄寬

    2008-06-02 18:03:50 補充:

    Application.ScreenUpdating = False

    關閉營幕更新,也就是他在執行程式碼時

    營幕不會一直隨著程式碼所跑到的sheet跳動

    最後執行完畢時才會跳至程式碼中的該頁

    不過在此題中並無sheet切換的問題,只是習慣將他寫上

    For Each st In ThisWorkbook.Sheets

    每一個st在這本活頁薄的工作頁

    上方已定義st為worksheet

    也就是說,遍歷所有工作表

    如此而已

    跑到next時,再從for開始,也就是下一張工作表

    如解譯不清,歡迎再詢問

    下次上線11點囉

    2008-06-05 21:08:58 補充:

    按alt+f11

    在左邊thisworkbook上點兩下

    將以下程式碼貼上

    Private Sub Workbook_Open()

    Application.ScreenUpdating = False

    Dim st As Worksheet

    For Each st In ThisWorkbook.Sheets

    st.Cells(1, 1) = st.Name

    st.Cells(1, 1).ColumnWidth = 30

    Next

    Application.ScreenUpdating = True

    End Sub

    每次開啟這檔案,會整理一次每一頁的a1及欄寬

    謝謝你囉,你說到關鍵字了,是駐點沒錯

    你可以試試在 for...next中間加入

    st.select

    再看application那兩段標記註解,及沒標記註解之後的反應就能了解了

  • BigC
    Lv 7
    1 decade ago

    這李提供 vba 解決方式

    Q1 , [A1] = ActiveSheet.Name

    Q2, ActiveSheet.Name = [A1]

    Source(s): 叔叔有學過 -vba程式在 ,工具 -巨集 -巨集 -編輯
Still have questions? Get your answers by asking now.