English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

請問有任何command/script可以將有多個worksheet的Excel檔案分存成單獨worksheet的Excel file嗎? like A.xls 有三個worksheets, any command/script可以將每個worksheet分存成A-1.xls, A-2.xls, and A-3.xls? 謝謝!

2006-07-14 12:19:47 · 4 個解答 · 發問者 ¯Õ»¨ 1 in 電腦與網際網路 軟體

補充: 可在command prompt下執行的command/script

2006-07-14 14:23:03 · update #1

如果需要將每個worksheet存成CSV(Comma delimited) file type, 且存在原始檔案的folder (目前分存的檔案會在"My Documents" folder), 請問需要作哪些修改呢? 謝謝!

2006-07-17 08:19:56 · update #2

因為目標是某個foler下所有的Excel file.....請問有可能寫成一個VB script(or other script), 然後在command prompt下執行嗎? 謝謝!

2006-07-17 20:05:26 · update #3

所提供的script可以成功低處理同一層folder 下所有的Excel file. : ) 謝謝! 請問如果folder A中還有其他不同層的folderB, C, D...., 請問該如何修改呢? -- 這是我最後的問題. 謝謝!

2006-07-18 08:17:20 · update #4

4 個解答

這是巨集不能直接在command prompt下執行
在 Excel 的VBE專案總管內新增 Module 貼上底下巨集,然後從 excel 內的「工具」「巨集」「巨集」去執行

Sub 工作表另存活頁簿()
Set mybook = ActiveWorkbook
bookname = mybook.Name
'檔案類型是 microsoft excel 活頁簿才執行
If mybook.FileFormat = -4143 And Right(LCase(bookname), 4) = ".xls" Then
bookname = Left(bookname, Len(bookname) - 4)
Application.DisplayAlerts = False
For i = 1 To mybook.Sheets.Count
mybook.Sheets(i).Copy
ActiveWorkbook.SaveAs bookname & "-" & i & ".xls"
ActiveWorkbook.Close
Next
Application.DisplayAlerts = True
End If
End Sub

2006-07-17 21:59:44 補充:
要存成CSV檔將底下這一列ActiveWorkbook.SaveAs bookname & "-" & i & ".xls"改成ActiveWorkbook.SaveAs bookname & "-" & i, xlCSV

2006-07-17 22:06:09 補充:
另存的檔案要與原檔案同路徑,將bookname = mybook.Name改成bookname = mybook.Path & "\" & mybook.Name

2006-07-17 22:25:48 補充:
而如果活頁簿檔案內可能會有「圖表工作表」或「Excel 5.0 對話方塊工作表」,請將 Sheets 改成 Worksheets 上述巨集內共有兩處。

2006-07-17 22:30:51 補充:
最後,如果要巨集在執行的時候 excel 程式的畫面不要跳動在程式碼第一列「Sub 工作表另存活頁簿()」的下方插入底下這一列程式碼Application.ScreenUpdating = False並在程式碼最後一列「End Sub」的上方插入底下這一列程式碼Application.ScreenUpdating = True

2006-07-18 01:54:46 補充:
上述巨集以及你後續所說的要求應可改成 VBScript 檔案
但是,很抱歉!小弟不會寫 VBScript
若是要在VBA環境下執行再告知。

2006-07-18 03:10:12 補充:
剛剛稍微研究了一下 VBScript 得到以下結論請將底下的程式碼存成 x.vbs 然後從「執行」去執行他,並傳個參數(資料夾位址)給他就行了例如: C:\x.vbs "C:\Documents and Settings\Administrator\My Documents"

2006-07-18 03:13:28 補充:
bkpath = WScript.Arguments(0)Set xlapp = CreateObject("Excel.Application")Set fso = CreateObject("Scripting.FileSystemObject")Set fld = fso.GetFolder(bkpath)xlapp.DisplayAlerts = FalseFor Each fl In fld.FilesIf Right(fl.Name, 4) = ".xls" Then'續下一則

2006-07-18 03:13:58 補充:
Set xlsbk = xlapp.Workbooks.Open(fld.Path & "\" & fl.Name)For i = 1 To xlsbk.Worksheets.Countxlsbk.Worksheets(i).Copyxlapp.ActiveWorkbook.SaveAs fld.Path & "\" & Left(fl.Name, Len(fl.Name) - 4) & "-" & i, 6xlapp.ActiveWorkbook.CloseNext'續下一則

2006-07-18 03:17:16 補充:
'超過字數無法繼續發言,所以最後的部分在這裡
xlapp.ActiveWorkbook.Close
End If
Next
xlapp.DisplayAlerts = True

2006-07-18 03:20:47 補充:
第一次寫 VBScript
如果哪裡寫錯了,請告知一下

2006-07-14 14:55:09 · answer #1 · answered by 沙拉油 5 · 0 0

我本來從沒遇到過修NAS修硬碟和隨身碟要資料救援,一開始也跟大家一樣總是問價格到處比價,因為不懂,凡事都從價格,考量,輕言聽信朋友介紹比較便宜一家,找錯家之後痛苦尾隨而來,以下省略500字........,後來自己上網找資料救援找到硬碟醫院,和他們經理溝通之後給我正確觀念,這是妳寶貴的資料,妳要考慮是救不救的回問題,而不是貴不貴問題,如果重要請找對人搶救NAS資料硬碟救援才能恢復你的NAS中多顆的硬碟資料
http://www.datamaster.com.tw/

2015-05-06 20:09:22 · answer #2 · answered by 淑珍 1 · 0 0

【亞洲36588合法彩券公司直營 官網: A36588.NET 】

【 最新活動→迎接新會員,首存狂送20% 】

【運動→電子→對戰→現場→彩球 】

【免費服務 →電影區、討論區、KTV歡唱、運動轉播、即時比分、24H客服 】

【亞洲36588合法彩券公司直營 官網: A36588.NET 】

2014-09-07 14:46:07 · answer #3 · answered by Anonymous · 0 0

請先在excel內開啟三個新檔案,並且分別儲存為A-1.xls, A-2.xls, A-3.xls
(1)接著回到A.xls ,選取第一張工作表,
(2)使用功能表〔編輯〕/〔移動或複製工作表〕
(3)設定<頁活簿>:A-1.xls
(4)設定<選定工作表之前>:依你想放置在A.xls的工作表順序位置點選
(5)若只想複製到A-1.xls,而不是工作表整個移到A-1.xls,請記得把<建立副本>打勾,如此就會保留A.xls 內的工作表
重複完成上述步驟,即可將第二張表移到A-2.xls,第三張表移到A-3.xls
別忘記移過去要在儲存一次,才算完成

2006-07-16 14:42:16 補充:
修正以上部分文字(3)....<頁活簿>.......改為 <活頁簿>(4)......在A.xls的工作表.......改為在A-1.xls的工作表

2006-07-14 13:03:11 · answer #4 · answered by 去冰 5 · 0 0

fedest.com, questions and answers