返回列表 上一主題 發帖

[發問] 如何秀出所有可見之sheet name?

[發問] 如何秀出所有可見之sheet name?

如何秀出所有可見之sheet name至一個新的sheet上表列? (以vba也可)
我用Excel 2007
謝謝!
Symis

本帖最後由 GBKEE 於 2013-3-12 17:10 編輯

回復 1# symis
  1. Option Explicit
  2. Sub EX()
  3.     Dim Sh As Worksheet, M As Variant
  4.     For Each Sh In Sheets
  5.         M = IIf(M <> "", M & "," & Sh.Name, Sh.Name)
  6.     Next
  7.     M = Split(M, ",")
  8.     Sheets(1).[A1].Resize(, UBound(M) + 1) = M  '橫向排列
  9.     ' Sheet(1) 第一個工作表
  10.    ' Sheet(1).[A1].Resize(UBound(M) + 1) = Application.Transpose(M)  '直向排列
  11.    ' With Sheets.Add             '新增的工作表
  12.    '    .[A1].Resize(, UBound(M) + 1) = M  '橫向排列
  13.    '    .[A1].Resize(UBound(M) + 1) = Application.Transpose(M)  '直向排列
  14.    'End With
  15. End Sub
複製代碼

TOP

不好意思,開一個新檔,執行您的巨集,停在Sheet(1)的地方,出現error: 沒有定義這個Sub或Function
感謝指教!
Symis

TOP

本帖最後由 GBKEE 於 2013-3-12 15:59 編輯

回復 3# symis
傳上你的程式碼 看看

TOP

我是用你的程式碼呀!
圖:
Symis

TOP

本帖最後由 GBKEE 於 2013-3-12 17:19 編輯

回復 5# symis
不好意思(老花眼),浪費你的時間: 少了s 2#程式碼已修正.
    Sheets(1).[A1].Resize(, UBound(M) + 1) = M  '橫向排列
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

OK了,感謝您
只是看不懂最後一行程式,是如何產生結果的?
我試寫比較淺的語法如下:
    Columns(1).Insert
    For i = 1 To Sheets.Count
        Cells(i, 1).Value = Sheets(i).Name
        If Sheets(i).Visible = False Then Cells(i, 2).Value = "Hidden"
    Next i
Symis

TOP

回復 7# symis
M = Split(M, ",")
Sheets(1).[A1].Resize(, UBound(M) + 1) = M  '橫向排列
VBA的說明中查看可了解.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 得理要饒人,理直要氣和。
返回列表 上一主題