|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 shelld 于 2021-12-1 11:28 编辑
问题描述:
1、我建立了一个销售报表查询的窗体,如图1所示,点击【总流水账目】按钮时,sheets("销售总表")里显示的是全部数据,窗体里读取的也是全部数据。
图1
2、当我点击【本月流水账目】按钮时,如图2所示,sheets("销售总表")里显示的是筛选过后的本月数据,但是窗体里的数据没有任何变化,还是全部数据。
图2
3、代码如下:- Private Sub CommandButton2_Click()
- Dim Start, Final
- Start = CDate(Evaluate("EOMONTH(TODAY(),-1)"))
- Final = CDate(Evaluate("EOMONTH(TODAY(),0)"))
- Worksheets("销售总表").Range("$A$1:$G$1").AutoFilter Field:=1, Operator:=xlFilterValues, Criteria1:=">" & Start, Operator:=xlAnd, Criteria2:="<=" & Final
- Me.MultiPage1.Value = 1
- End Sub
- Private Sub MultiPage1_Change()
- ListBox1.ColumnCount = 7
- ListBox1.ColumnWidths = "60,60,180,60,60,60,60"
- ListBox1.List = Worksheets("销售总表").Range("a2:g" & Worksheets("销售总表").Range("a65536").End(xlUp).Row).Value
- Label1.Caption = Application.WorksheetFunction.Sum(Worksheets("销售总表").Range("f2:f65536"))
- ListBox2.ColumnCount = 7
- ListBox2.ColumnWidths = "60,60,180,60,60,60,60"
- ListBox2.List = Worksheets("销售总表").Range("a2:g" & Worksheets("销售总表").Range("g65536").End(xlUp).Row).Value
- Label2.Caption = Application.WorksheetFunction.Sum(Worksheets("销售总表").Range("f2:f65536"))
- End Sub
- Private Sub Userform_Initialize()
- ListBox1.ColumnCount = 7
- ListBox1.ColumnWidths = "60,60,180,60,60,60,60"
- ListBox1.List = Worksheets("销售总表").Range("a2:g" & Worksheets("销售总表").Range("a65536").End(xlUp).Row).Value
- Label1.Caption = Application.WorksheetFunction.Sum(Worksheets("销售总表").Range("f2:f65536"))
- End Sub
复制代码
4、求助:如何才能把筛选过后的数据,读取到窗体中?我思考了一下整个逻辑,是这样的,因为透视表筛选,实际上只是把不想看到的行,给隐藏起来了,而我的listbox获取的数据却仍然是包括隐藏行的全部数据,那么能不能建立一个字典,先读取“销售总表”中所有数据,然后根据隐藏与否的条件筛选,最后把没有隐藏的行数据,复制到一个新表中,最后,窗体执行【本月流水账目】按钮时,读取的是新建表中筛选后的数据。但是,愚笨的我,不知道如何实现这个代码,还请各位前辈高人,出手帮助,感谢:)
5、代码附件在此:
刚接触VBA的小萌新,在请求各位前辈的指点,万分感谢:)
|
|