查看完整版本 : Excel VBA 拆worksheet 一問

R.Y.T 2017-10-19 10:38 PM

Excel VBA 拆worksheet 一問

假如有個Excel檔叫 ABC, 有5版 worksheet 名叫 A, JAN, FEB , MAR ,APR
我寫個VBA, 拆開5個worksheet為5個獨立Excel檔, 如下.

Sub Splitbook()
MyPath = ThisWorkbook.Path
For Each sht In ThisWorkbook.Sheets
sht.Copy
ActiveSheet.Cells.Copy
ActiveSheet.Cells.PasteSpecialPaste:=xlPasteValues
ActiveSheet.Cells.PasteSpecialPaste:=xlPasteFormats
ActiveSheet.Cells.Hyperlinks.Delete
ActiveWorkbook.SaveAs _
Filename:=MyPath& "\"&sht.Name& ".xlsx"
ActiveWorkbook.Closesavechanges:=False
Next sht
End Sub

1. 呢家同樣拆開呢5個worksheet為5個獨立Excel檔 , 但我想修改內容為...
包含 sheet A, Sheet A -->檔名叫 A
包含 sheet A, Sheet JAN -->檔名叫 JAN
包含 sheet A, Sheet FEB -->檔名叫 FEB
如此類推
請問如何修改以上VBA ? 謝謝

2. 我想將以上VBA save落一個獨立Excel檔, 而唔係要寫落拆果個Excel檔度..
即係 先開個VBA Excel檔, 再開一個Excel檔叫 ABC, 起ABC行Marco
開個VBA Excel檔, 再開一個Excel檔叫 DEF, 起DEF行Marco
如此類推
請問如何修改以上VBA ? 謝謝

萬分感激

cindylee7689 2017-10-20 02:12 PM

留名:smile_14:

ncream 2017-10-23 11:23 AM

[quote]原帖由 [i]R.Y.T[/i] 於 2017-10-19 10:38 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469632318&ptid=27002737][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
假如有個Excel檔叫 ABC, 有5版 worksheet 名叫 A, JAN, FEB , MAR ,APR
我寫個VBA, 拆開5個worksheet為5個獨立Excel檔, 如下.

Sub Splitbook()
MyPath = ThisWorkbook.Path
For Each sht In ThisWorkbook.Shee ... [/quote]

網上成段code都有得抄,自己改兩改就得。

Sub atest()
Dim Fname As String, ws As Worksheet
Fname = Sheets("Sheet1").Range("A1").Value
Sheets(Array("Sheet1", "Sheet2", "Sheet4", "Sheet8")).Copy
For Each ws In ActiveWorkbook.Worksheets
    With ws.UsedRange
        .Value = .Value
    End With
Next ws
With ActiveWorkbook
    .SaveAs Filename:=Fname
    .Close
End With
End Sub

[[i] 本帖最後由 ncream 於 2017-10-23 11:34 AM 編輯 [/i]]

R.Y.T 2017-10-24 01:27 AM

[quote]原帖由 [i]ncream[/i] 於 23-10-2017 11:23 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469796805&ptid=27002737][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]


網上成段code都有得抄,自己改兩改就得。

Sub atest()
Dim Fname As String, ws As Worksheet
Fname = Sheets("Sheet1").Range("A1").Value
Sheets(Array("Sheet1", "Sheet2", "Sheet4", "Sheet8")).Copy
... [/quote]
抱歉, 運作不到..
我自己那個也是抄番黎... 普通的一worksheet拆一workbook
但我要做到的是 一worksheet + 指定某worksheet 拆成一workbook
另外實際worksheet超過20個, 有方法令它自行抄寫嗎 ?
謝謝

ncream 2017-10-24 12:34 PM

[quote]原帖由 [i]R.Y.T[/i] 於 2017-10-24 01:27 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469830742&ptid=27002737][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]

抱歉, 運作不到..
我自己那個也是抄番黎... 普通的一worksheet拆一workbook
但我要做到的是 一worksheet + 指定某worksheet 拆成一workbook
另外實際worksheet超過20個, 有方法令它自行抄寫嗎 ?
謝謝 [/quote]

改左比你。

CHING記住,第一個ROW係要MARK底你個SHEET名,唔可以錯。

你參考下就識自己改。

收PM。

R.Y.T 2017-10-24 08:07 PM

[quote]原帖由 [i]ncream[/i] 於 24-10-2017 12:34 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469846562&ptid=27002737][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]


改左比你。

CHING記住,第一個ROW係要MARK底你個SHEET名,唔可以錯。

你參考下就識自己改。

收PM。 [/quote]

謝謝ching 寶貴既時間同分享...:smile_40:
我會鑽研一下....

ncream 2017-10-24 08:14 PM

[quote]原帖由 [i]R.Y.T[/i] 於 2017-10-24 08:07 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469866932&ptid=27002737][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]


謝謝ching 寶貴既時間同分享...:smile_40:
我會鑽研一下.... [/quote]

睇下就識改。
其實寫到咁大彈性。唔改都run到。:smile_40:
頁: [1]
查看完整版本: Excel VBA 拆worksheet 一問