Vba Excel宏自动筛选和导出结果

Vba Excel宏自动筛选和导出结果,vba,excel,Vba,Excel,我有一个excel文件,其中有一个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 我想创建一个宏,为每个值(a,b,C,d,…,n)过滤C列,并将结果保存在一个新文件中 在我的示例中,宏返回4个文件F1、F2、F3、F4,其中包含以下内容: A |

我有一个excel文件,其中有一个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
我想创建一个宏,为每个值(a,b,C,d,…,n)过滤C列,并将结果保存在一个新文件中

在我的示例中,宏返回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

如何编写宏?

使用Oledb查询将列c的不同值写入数组…然后编写另一个查询以获取数组不同值的值。

以下是代码。每次都必须手动保存创建的文件。如果要我设置默认位置并自动保存所有文件,请通知我

\代码\

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

也许开始写吧?抱歉,您只删除了要求。这里的想法是,您展示代码,然后人们帮助修复代码中的问题。否则,听起来你希望其他人为你做工作。是的,我的目标是在我的桌面上保存所有文件。谢谢非常感谢。请将我的回答标记为答案:)