Vba Excel宏自动筛选和导出结果
我有一个excel文件,其中有一个C列,有时有重复的值: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 |
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
也许开始写吧?抱歉,您只删除了要求。这里的想法是,您展示代码,然后人们帮助修复代码中的问题。否则,听起来你希望其他人为你做工作。是的,我的目标是在我的桌面上保存所有文件。谢谢非常感谢。请将我的回答标记为答案:)