Excel VBA程序开发

昨晚打老虎 Lv.2

关注
我有一个表格(见附件)需要用VBS进行筛选并复制,我的代码如下:


Dim xl,currentpath,wb,sht1
Set xl=Createobject("KET.application")
xl.visible=True
currentpath = createobject("Scripting.FileSystemObject").GetFolder(".").Path

set wb3=xl.workbooks.open(currentpath & "\系统告警A.xlsx")
'打开当前路径文件夹下的系统告警A工作簿
set sht1=wb3.sheets("sheet1")
sht1.activate
'切换到SHEET1
sht1.rows("1:5").delete
'删除前5行
with sht1.range("a1:ar1000")
        .autofilter 5,"小区"
end with
'设置小区数据筛选条件

我需要的是用EXCEL自动筛选,然后在E列筛选包含关键字“小区”的所有数据,但是在测试时发现,程序到这里的确是有筛选,但是却没有任何数据,这是哪里出了问题?另外假如我要筛选包含多个关键字或者在不同列筛选不同关键字该如何写?麻烦大佬解答下,谢谢!


系统告警A.rar   2023-4-29 20:36 上传

16.96 KB, 下载次数: 2

663阅读
9回复 倒序

3190496160 Lv.7 2楼

Sub 一列一条件筛选()
With Sheets("sheet1")
    .AutoFilterMode = False
    r = .Cells(Rows.Count, 1).End(xlUp).Row
    If r < 7 Then MsgBox "表为空!": End
    .Range("a6:v" & r).AutoFilter Field:=5, Criteria1:="*小区*", Operator:=xlAnd
End With
End Sub
Sub 一列两条件筛选()
With Sheets("sheet1")
    .AutoFilterMode = False
    r = .Cells(Rows.Count, 1).End(xlUp).Row
    If r < 7 Then MsgBox "表为空!": End
    .Range("a6:v" & r).AutoFilter Field:=5, Criteria1:=Array("*小区*", "*本地*"), Operator:=xlAnd
End With
End Sub

Sub 多列多条件筛选()
With Sheets("sheet1")
    .AutoFilterMode = False
    r = .Cells(Rows.Count, 1).End(xlUp).Row
    If r < 7 Then MsgBox "表为空!": End
    .Range("a6:v" & r).AutoFilter Field:=5, Criteria1:="*小区*", Operator:=xlAnd
    .Range("a2:f" & r).AutoFilter Field:=11, Criteria1:="*BS*", Operator:=xlAnd
End With
End Sub

3190496160 Lv.7 3楼

image.png

3190496160 Lv.7 4楼

多种情况筛选.rar   2023-4-30 07:50 上传

26.49 KB, 下载次数: 6

昨晚打老虎 楼主 5楼

大佬你好,感谢您的解答,不过你用的是VBA,我需要的是VBS,我把你的语句输入并执行,出现以下错误(15行46字符缺少语句,请问该如何解决?

程序如下:

Dim xl,currentpath,wb,sht1
Set xl=Createobject("KET.application")
xl.visible=True
currentpath = createobject("Scripting.FileSystemObject").GetFolder(".").Path

set wb3=xl.workbooks.open(currentpath & "\3G.xlsx")
'打开当前路径文件夹下的3G工作簿
set sht1=wb3.sheets("sheet1")
sht1.activate
'切换到SHEET1
sht1.rows("1:5").delete
'删除前5行
With sht1("sheet1")
    .AutoFilterMode = False
    .Range("a1:az1000" & r).AutoFilter Field:=5, Criteria1:="*小区*", Operator:=xlAnd
End With

C:\Users\Administrator\Desktop\1682821201887.jpg

zpy2 Lv.7 6楼

引用: 昨晚打老虎 发表于 2023-4-30 10:23
大佬你好,感谢您的解答,不过你用的是VBA,我需要的是VBS,我把你的语句输入并执行,出现以下错误(15行46 ...

你是wps吧,是不是需要安装vba模块才行啊

perfect131 Lv.5 7楼

引用: 昨晚打老虎 发表于 2023-4-30 10:23
大佬你好,感谢您的解答,不过你用的是VBA,我需要的是VBS,我把你的语句输入并执行,出现以下错误(15行46 ...

这样,wps 也一样的
1.jpg

vbs 要另存为ANSI 不然读取中文会乱码的


donglinlin888 Lv.2 8楼


("*TXL*", "*-*")  这2个条件,只能筛选后面的一个条件,前面那个条件不行

只能筛出后面一个条件.zip   2023-10-7 22:49 上传

385.71 KB, 下载次数: 2

3190496160 Lv.7 9楼

引用: donglinlin888 发表于 2023-10-7 22:50
("*TXL*", "*-*")  这2个条件,只能筛选后面的一个条件,前面那个条件不行

不是不可以,而是你连最基础的东西都还没弄明白,用的不得法

donglinlin888 Lv.2 10楼

引用: 3190496160 发表于 2023-10-8 10:19
不是不可以,而是你连最基础的东西都还没弄明白,用的不得法

小白一个,哈哈,大师指点迷津呀

已显示全部内容