2017-02-13 6 views
-1

I Excelファイル時々repeteated値を列Cを有する有し:エクセルマクロオートフィルタおよびエクスポート結果

A | B | C 
------------ 
1 | 2 | a 
1 | 4 | b 
1 | 5 | c 
1 | 2 | d 
1 | 6 | a 
4 | 2 | d 
1 | 2 | a 
4 | 4 | c 
8 | 2 | c 
1 | 8 | d 

私はマクロを作成したいが、その各値のフィルタC列(A、B、 c、d、..、n)、結果を新しいファイルに保存します。私の例では

マクロリターン4ファイルF1、F2、F3、F4は、このコンテンツを聖霊降臨祭:

マクロを書くことができますどのように
A | B | C 
------------ 
1 | 2 | a 
1 | 6 | a 
1 | 2 | a 


A | B | C 
------------ 
1 | 4 | b 


A | B | C 
------------ 
1 | 5 | c 
4 | 4 | c 
8 | 2 | c 


A | B | C 
------------ 
1 | 2 | d 
4 | 2 | d 
1 | 8 | d 

+1

おそらくスタートでそれを書きますか?申し訳ありませんが、要件を削除しただけです。ここでのアイデアは、コードを表示してから、そのコードの問題を修正するのに役立つということです。それ以外の場合は、他の人があなたのためにあなたの仕事をすることを期待しているようです。 – GhostCat

答えて

0

Oledbクエリを使用して、列cの個別の値を配列に取得し、配列の異なる値の値を取得する別のクエリを作成します。

1

ここにコードがあります。毎回、作成したファイルを手動で保存する必要があります。私がデフォルトの場所を設定し、すべてのファイルを自動的に保存したい場合はお知らせください。

\コード\

Function perform_click() 

Dim i, lastrow As Integer 
Dim ws1, ws2 As Workbook 

Set ws1 = ThisWorkbook 
lastrow = ws1.Sheets("Sheet1").Range("C500000").End(xlUp).Row 

ws1.Sheets("Sheet1").Range("C4:C" & lastrow).Copy Range("P4") 
ws1.Sheets("Sheet1").Range("P4:P" & lastrow).RemoveDuplicates 1, xlNo 


ActiveSheet.AutoFilterMode = False 

For i = 4 To ws1.Sheets("Sheet1").Range("P500000").End(xlUp).Row 

ws1.Sheets("Sheet1").Range("A3:C" & lastrow).AutoFilter 3, ws1.Sheets("Sheet1").Range("P" & i).Value 
Set ws2 = Workbooks.Add 
ws1.Sheets("Sheet1").Range("A3:C" & lastrow).SpecialCells(xlCellTypeVisible).Copy ws2.Sheets("Sheet1").Range("A3") 

Application.DisplayAlerts = False 
ws2.SaveAs "C:\Users\Praveen Behera\Desktop\F" & i & ".xlsx", 51 
Application.DisplayAlerts = True 

Set ws2 = Nothing 
Next i 

End Function 

Private Sub CommandButton1_Click() 

perform_click 

End Sub 
+0

はい、私の目標はデスクトップにすべてのファイルを保存することです。ありがとう! – padibro

+0

大変ありがとうございます。私の回答を回答として記入してください:) –

関連する問題