excel 中使用vba实现列的筛选

表格第一行内有M,N两个字母,如何使用VBA实现筛选?按钮一只显示第一行内含有M的列,按钮二只显示第一行内含有N的列,按钮三显示全部... 表格第一行内有M,N两个字母,如何使用VBA实现筛选?
按钮一只显示第一行内含有M的列,按钮二只显示第一行内含有N的列,按钮三显示全部
展开
 我来答
厦门侯
高粉答主

推荐于2018-12-24 · 信息管理员
厦门侯
采纳数:30618 获赞数:90295

向TA提问 私信TA
展开全部
一般采用倒序的方式:例如,将D列中为“否”的整行删除:
Sub test()
For i = Cells(Rows.Count, 4).End(xltoup).Row To 1
If Range("D" & i) = "否" Then
Range("D" & i).EntireRow.Delete
End If
Next
End Sub
2724421
2012-04-24 · TA获得超过2493个赞
知道大有可为答主
回答量:1551
采纳率:71%
帮助的人:947万
展开全部
下面是3个宏的代码,分别绑定到3个按钮上

Sub combutton1()
Dim a As Range
Range("A1:iv1").EntireColumn.Hidden = False
For Each a In Range("A1:iv1")
If a = "M" Or a = "m" Then a.EntireColumn.Hidden = True
Next
End Sub

Sub combutton2()
Dim a As Range
Range("A1:iv1").EntireColumn.Hidden = False
For Each a In Range("A1:iv1")
If a = "N" Or a = "n" Then a.EntireColumn.Hidden = True
Next
End Sub

Sub combtton3()
Dim a As Range
endcol = Range("iv1").End(xlToLeft).Column
Range("A1:iv1").EntireColumn.Hidden = False
End Sub
追问
谢谢!还有点小问题
endcol = Range("iv1").End(xlToLeft).Column
这句是干什么的啊
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ef533b3
2012-04-24 · 超过34用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:73.9万
展开全部
录制三个宏就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuanxuan163com
2012-04-24 · TA获得超过2769个赞
知道大有可为答主
回答量:1709
采纳率:75%
帮助的人:1603万
展开全部
Sub xianshiM()
Dim EndC As Integer, i As Integer
Columns.Hidden = False
EndC = Range("A1").End(xlToRight).Column
For i = 1 To EndC
If InStr(Cells(1, i), "M") > 0 Then
Columns(i).Hidden = False
Else
Columns(i).Hidden = True
End If
Next
End Sub
Sub xianshiN()
Dim EndC As Integer, i As Integer
Columns.Hidden = False
EndC = Range("A1").End(xlToRight).Column
For i = 1 To EndC
If InStr(Cells(1, i), "N") > 0 Then
Columns(i).Hidden = False
Else
Columns(i).Hidden = True
End If
Next
End Sub
Sub xianshquanbu()
Columns.Hidden = False
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式