標題:
[發問]
(自行解決~ 大大還是可以指導~ 提供寫法)依條件將sheet另存新檔
[打印本頁]
作者:
hugh0620
時間:
2012-7-5 16:49
標題:
(自行解決~ 大大還是可以指導~ 提供寫法)依條件將sheet另存新檔
本帖最後由 hugh0620 於 2012-7-6 14:51 編輯
Dear 大大們
小弟卡到一個問題~ 如附件
共有5個sheet (原始資料不止5個sheet)
1. Data
2. 1,2,3,4 為要另存的sheet
問題如下:
1. 依data的條件
a有:1,2
b有:1,2,3,4
2. 只要a符合1,就是1&2 的sheet,另存1個檔案
b符合2,就是3&4 的sheet,另存1個檔案
請大大們導一下~
[attach]11587[/attach]
提供自行完成的檔案
[attach]11605[/attach]
作者:
hugh0620
時間:
2012-7-6 14:48
以下是針對我發文的問題~ 自行拼湊出來的解決方式~
主要是在一開始寫的時候~ 當我新增一個workbooks時~
在跑For each Sh in [ ]時~ 老是去撈取新增的 workbooks~ 就卡在那邊
因為知道是哪邊出了問題~ 但對於workbooks /sheets / ThisWorkbook.Worksheets ...這些的用法不是很熟悉~
所以~ 一直測試~ 終於找到適合的指令~
若大大有這方面的資訊~ 或是有其他更好的寫法~ 亦不吝指導一下~
Sub ex()
Application.DisplayAlerts = False
Dim Sh As Worksheet
'====進階篩選=====
Range("B4:B8").Select
Range("B4:B8").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("E4" _
), Unique:=True
'=================
A = Sheet1.Range("E65536").End(xlUp).Row
For I = 5 To A
H = Sheet1.Range("E" & I)
Workbooks.Add
k = ActiveWorkbook.Name
For J = 5 To 8
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name = Sheet1.Range("C" & J) And H = Sheet1.Range("B" & J) Then
With ThisWorkbook.Worksheets(Sh.Name)
.Copy Before:=Workbooks(k).Sheets(1)
End With
End If
Next
Next
With ActiveWorkbook
If Sheets.Count > 1 Then
.Sheets("Sheet1").Delete
.SaveAs "C:\Documents and Settings\Hugh.Huang\桌面\新資料夾\" & H
.Close
Else
.Sheets("Sheet1").Name = "無"
.SaveAs "C:\Documents and Settings\Hugh.Huang\桌面\新資料夾\" & H
.Close
End If
End With
Next
Application.DisplayAlerts = True
End Sub
複製代碼
作者:
Hsieh
時間:
2012-7-6 16:07
回復
2#
hugh0620
工作表群組複製
Sub nn()
Set d = CreateObject("Scripting.Dictionary")
With Sheet1
For Each A In .Range(.[B5], .[B5].End(xlDown))
d(A.Value) = IIf(d(A.Value) = "", A.Offset(, 1), d(A.Value) & "," & A.Offset(, 1))
Next
For Each ky In d.keys
Sheets(Split(d(ky), ",")).Copy
With ActiveWorkbook
.SaveAs "D:\" & ky & ".xls"
.Close 1
End With
Next
End With
End Sub
複製代碼
作者:
avel
時間:
2012-7-15 04:14
学习了字典分组选择工作表方法。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)