-
1 # 談天說地聊工作
-
2 # 精進Excel
提取Excel工作表的名稱在Excel中是一個非常典型的應用場景,特別是在VBA中,這裡我就教會你兩種提取工作表名稱的方法。
方法1:使用VBA程式碼自動提取彙總Step1:開啟一個Excel檔案,新建多個工作表並分別命名,如圖:
Step2:編寫VBA程式碼
Sub 星星()Dim ss As WorksheetDim i As Integeri = 0For Each ss In Sheets i = i + 1 Cells(i, 1) = ss.NameNextEnd SubStep3:執行VBA程式
提取彙總的工作表名稱如下:
注意:彙總結果會自動存到當前活動工作表,為防止資料覆蓋丟失,最好新建一個空白工作表再執行程式碼執行完畢後再將新建的工作表名字刪去。
方法2:藉助壓縮軟體提取Excel檔案資訊Step1:修改Excel的字尾名
將工作薄的字尾名由xlsx改為rar(或者其他壓縮文件的字尾均可)
Step2:開啟壓縮檔案
雙擊開啟修改後的檔案,在電腦上安裝有解壓縮軟體的前提下,該檔案以解壓縮的方式開啟。
可以發現工作表名稱以一種規範化方式儲存在一起,如圖所示。
Step3:複製工作表名稱到工作表中
將所需資訊的四行程式碼複製到Excel工作表中,發現儲存在一個單元格中。依次使用“以分隔符號>進行分列”、“轉置”、“快速填充”三個功能對資料進行整理,得到工作表名稱彙總結果如下。
總結:
第一種方法比較中規中矩,但更適用於有VBA基礎的“技術人員”。第二種方法劍走偏鋒思路更加活躍,且最後一步要求有一定的資料整理能力。
你學會了哪種方法呢?
-
3 # 格子裡外
提取一個excel檔案中的所有工作表名稱,有好幾種辦法,下面這種辦法不需要寫程式碼,還可以提取excel中圖片的名稱。
步驟1:複製一份Excel表格,將字尾修改為“zip”,然後解壓這個zip包,找到xl資料夾下的workbook.xml。
步驟2:用notepad++或記事本開啟這個xml檔案,將所有內容複製到Excel中。
步驟3:對這幾行程式碼進行分列,設定分隔符號為“>”。
步驟4:按“Ctrl + A”選中所有單元格,複製它,選擇性貼上為“轉置”。這樣就會看到很多的“sheet name”語句了。
步驟5:對這些包含工作表名稱的語句再次分列,選擇分隔符號為“"”。
這樣我們就得到了所有的工作表名稱。
為什麼可以用這種方法來提取表格名稱呢?據說Excel2016表格暗含程式碼,因此可以將它對應的程式碼解壓出來,必然會包含工作表名稱。如果你的表格中包含很多圖片,也可以用相同的辦法將圖片名稱提取出來。
-
4 # excel實戰小課堂
詳細講解利用函式提取的原理:
怎麼快速提取一個excel檔案中的所有工作表名?
一、採用函式 get.workbook(1)
此函式為宏表函式,它不能在表格內直接使用,必須命名後才能使用。
我們使用這個函式可以得到一個工作簿中所有的工作表的名稱,該函式取得的所有工作名稱最終生成一個水平陣列。
下面以該例做個舉例!
二、採用定義名稱:(ctrl+F3)
三、新建
其中解釋下:&t(now())部位
因GET.WORKBOOK函式同時也是一個易失函式,必須要重新整理(或按(F9)才能更新資料!故增加此部就是增強他的重新整理流動性。
四、選擇任意一組水平單元格,函式框內輸入=getallfullname(就是定義的名稱名),然後按住(ctrl+shift+enter)三鍵同時按,因為是陣列原因哈!
五、所有工作表名(包涵隱藏的工作表格名都會出現)(因為水平陣列的原因)
六、剩下的只是提取的問題(這裡不在講解)find函式,還是right;left;replace均可哈。
均可得到及時更新的工作表面,不需要另行重新整理!
。wish you to come to my channel and thank you so~~so~ much!
-
5 # Excel到PowerBI
我是大海,微軟認證Excel專家,企業簽約Power BI顧問,喜歡研究無需VBA的Excel報表自動化及資料分析問題。
對於快速提取一個excel檔案中的所有工作表名的問題,在以往,要麼透過VBA,要麼透過一些相對偏門的技巧來實現,雖然都不是很複雜,但個人認為這些方法對於絕大部分的普通Excel使用者來說,都不算是最佳的解決方案。
一、建議方法鑑於此,我個人比較推薦使用xcel2016的新功能Power Query(Excel2010或Excel2013可到微軟官方下載相應的外掛)來實現,實現方法不僅簡單快捷,而且Power系列作為微軟進一步改進Excel乃至發展其商業智慧產品Power BI的重中之重,對普通使用者無需程式設計而實現報表的自動化以及商業智慧應用提供了最佳的工具。
二、具體實現參考回到這個問題,具體實現方法(包括可用於動態到對資料夾、檔案及檔案內工作表的路徑進行管理)如下:
三、相關知識及其他案例另外,我還在一個關於Power Query和Power Pivot的影片課程裡錄製了大量Power系列從入門到實戰的知識講解。有興趣的朋友也可以瞭解一下。
-
6 # 望月兄
下面是演示的效果:
不管EXCEL怎麼變,反正只要複製貼上就好了,完全都不用改變。感覺還是挺好用的。詳細的程式碼如下。圖片附上了詳細的註釋。最下方可以直接複製程式碼。
下面可以直接複製:
Private Sub CreateTxtFile()
Dim fso As Object
Dim myTxt As Object
Dim MyFName As String
Dim i As Integer
Dim nowDate As String
Dim sht As Worksheet
nowDate = CDate(Now())
nowDate = Replace(nowDate, ":", "")
nowDate = Replace(nowDate, "/", "")
nowDate = Replace(nowDate, " ", "_")
MyFName = ThisWorkbook.path & "/" & nowDate & ".txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set myTxt = fso.CreateTextFile(fileName:=MyFName, OverWrite:=True)
For Each sht In ThisWorkbook.Worksheets
myTxt.Write sht.Name & vbCrLf
Next
myTxt.Close
Set myTxt = Nothing
Set fso = Nothing
End Sub
-
7 # Office學習
批次提取工作表名稱,有兩種方法,一種是使用公式法實現,一種是使用VBA程式碼實現。
現在我們舉例項說明一下操作方法。
比如,以下表格,一個工作簿中有多個工作表。現要批次提取工作表名稱。
一、公式法
1、定義名稱
說明:GET.WORKBOOK是宏表函式,不能直接在單元格中使用,只能定義名稱後,使用名稱得到結果。=GET.WORKBOOK(1) 列出當前工作簿中的所有工作表名稱。
2、輸入公式
在第一個工作表的A1單元格輸入以下公式:
=IFERROR(INDEX(sheetname,ROW(A1)),"")
然後公式下拉填充,知道出現空白即停止。
說明:公式裡的IFERROR函式的作用是用來遮蔽錯誤值,讓結果更整潔。
到這裡,我們可以看到公式用INDEX函式提取出來的工作表名稱是帶有工作簿名稱的,我們需要將工作簿名稱去掉,保留工作表名稱就可以。
3、去掉工作簿名稱
在B1單元格里輸入工作表名稱,輸入完後回車。然後按CTRL+E即可快速填充下面所有單元格的內容。
現在所有工作表名稱就都提取出來了。
二、VBA法
右擊工作表名稱—【檢視程式碼】,開啟VBA程式碼編輯器,輸入以下程式碼:
Sub GetSheetName()
Dim sht As Worksheet
Dim i As Integer
i = 1
For Each sht In Sheets
Cells(i, 1) = sht.Name
i = i + 1
Next
End Sub
即可在A列批次生成所有工作表的名稱。
回覆列表
以下操作在excel2003上完成。
1、定義名稱,選單命令【插入---名稱---定義】
.
.
3、在任一單元格輸入公式:“=INDEX(aaa,ROW(A1)&T(NOW()))”,回車後就可得到第一個工作表名。
.
4、繼續向下複製公式,就可持續得到其他工作表名,直至獲取全部工作表名。