Sub 高级筛选()
On Error GoTo 10
Dim InputRg As Range, OutputRg As Range, Mysql$, Conditions$, Del_More$
Set InputRg = Application.InputBox('输入筛选的区域', , , , , , , 8)
Set OutputRg = Application.InputBox('输入输出的位置', , Selection.Address, , , , , 8)
Conditions = Application.InputBox('条件语句')
If MsgBox('是否去重', vbYesNo, '是否去掉重复项') = vbYes Then Del_More = 'Distinct ' Else Del_More = ''
Set cnn = CreateObject('ADODB.Connection')
cnn.Open 'provider=microsoft.ACE.oledb.12.0;extended properties=excel 12.0; data source=' & ActiveWorkbook.FullName ’版本低需修改此句,我比较懒,懒得分版本加语句,别用破烂03了。
Mysql = 'Select ' & Del_More & '* From [' & InputRg.Worksheet.Name & '$' & Replace(InputRg.Address, '$', '') & '] Where ' & Conditions ’用代码组合SQL语句
OutputRg.Worksheet.Range(OutputRg.Address).CopyFromRecordset cnn.Execute(Mysql)
cnn.Close
Set cnn = Nothing
10: End
End Sub