用VBA如何实现:筛选B列的值不开始于Lastday,B列的值也不开始于Lastday1,B列的值也不开始于Lastday2,其中Lastday,Lastday1,Lastday2是变量
时间: 2024-09-15 12:09:19 浏览: 61
在VBA中,你可以使用`AutoFilter`方法来实现对Excel工作表中的特定列(这里是B列)进行多条件筛选。假设`Lastday`, `Lastday1`, 和 `Lastday2` 是存储日期或其他字符串类型的变量,以下是实现该功能的步骤:
1. 首先,确保你的变量已经定义并且包含有效的值。例如:
```vba
Dim LastDay As String
LastDay = "01/01/2023" ' 示例日期,替换为你实际的日期格式
Dim LastDay1 As String
LastDay1 = "01/02/2023"
Dim LastDay2 As String
LastDay2 = "01/03/2023"
```
2. 然后,在工作表范围上应用筛选:
```vba
With Worksheets("Sheet1") ' 确保替换成你的工作表名
.Range("B:B").AutoFilter Field:=2, ' B列作为筛选目标
.Criteria1 = "<>" & LastDay & "" ' 非Lastday开头
.Criteria2 = "<>" & LastDay1 & "" ' 非Lastday1开头
.Criteria3 = "<>" & LastDay2 & "" ' 非Lastday2开头
'.Operator = xlAnd ' 这里省略,因为默认就是AND条件
' 如果你想同时满足所有条件,可以保持这行不删除
End With
```
这段代码会筛选出B列中既不以Lastday、Lastday1或Lastday2开头的所有值。
3. 如果你想要清除之前的筛选条件,可以加上 `.ResetAutoFilter()`。
注意:这里假设你的日期是以文本格式存储的,如果是数值型日期,可以直接进行比较,无需额外格式转换。此外,确保日期格式与你的`<>`运算符匹配,例如日期和文本之间的比较需要加双等号`<>`。
阅读全文