由组合框设置的 Excel 自动筛选范围?

标签 excel filter combobox vba

我目前正在制作一个工作表,该工作表旨在使用 http://peltiertech.com/excel/chartshowto/panelunevenscales.html 中详细介绍的后门技术显示单个参数在同一时间间隔内的变化。 .

基本上,我将其设置为模板,其中可以将 5 列数据(行长不同)粘贴到从第 12 行开始的 A-F 列中。我要过滤的时间列在 A 列中,我基本上想要做到这一点,以便可以使用 2 个组合框(ComboBox1 和 ComboBox2)来设置时间上限和下限并过滤掉任何其他数据。我希望我可以把它变成一个动态图表,它将调整 x 轴的大小以仅显示选定的时间段。

我对使用 VBA 还是比较陌生,我做了很多搜索,我能找到的唯一似乎相关的问题是在 http://www.ozgrid.com/forum/showthread.php?t=54376 上回答的问题。 .我尝试了以下代码并不断收到错误:

Sub TimeFilter()

Crit1 = Format(ComboBox1, "0")

Crit2 = Format(ComboBox2, "0")

.AutoFilterMode = False

.Range("A12:L10000").AutoFilter

.Range("A12:L10000").AutoFilter Field:=1, Criteria:=">=" & crit1, Operator:=xlAnd, Criteria2:="<=" & crit2

End Sub

关于为什么它可能不起作用的任何想法?任何帮助或指导表示赞赏!

****编辑****

这是我正在使用的电子表格的更新完整代码,使用 TimeFilter 脚本我得到“运行时错误'1004',范围类的 AutoFilter 方法失败”:
**我过滤的时间间隔为 0.2 秒,格式为 MM:SS.X。
Sub CreateComboBoxes()

Dim Cell As Range
Dim sht As Worksheet

Set sht = ThisWorkbook.Worksheets("Sheet1")

    Set Cell = Range("I8")  
    With Cell
        sht.DropDowns.Add(.Left, .Top, .Width, .Height).Name = "ComboBox1"
    End With

    Set Cell = Range("K8")    
    With Cell
        sht.DropDowns.Add(.Left, .Top, .Width, .Height).Name = "ComboBox2"
    End With

End Sub

Sub TimeFilter()

Crit1 = Format(ComboBox1, "0")
Crit2 = Format(ComboBox2, "0")

Worksheets("Sheet1").AutoFilterMode = False
Worksheets("Sheet1").Range("A12:L10000").AutoFilter
Worksheets("Sheet1").Range("A12:L10000").AutoFilter Field:=1,Criteria1:=">=" & Crit1, Operator:=xlAnd, _
Criteria2:="<=" & Crit2

End Sub

最佳答案

我首先声明这不是一个答案,而是一个使用 With 的解释。 , End With陈述。评论部分不提供正确执行此操作所需的格式化工具
With , End With语句可以节省您一遍又一遍地键入相同的位。

    ThisWorkbook.Worksheets("Sheet1").UsedRange.Font.ColorIndex = 3
    ThisWorkbook.Worksheets("Sheet1").UsedRange.Font.Bold = True
    ThisWorkbook.Worksheets("Sheet1").UsedRange.Font.Size = 15
    ThisWorkbook.Worksheets("Sheet1").UsedRange.Font.Name = "Times new Roman"

也可以写成
    With ThisWorkbook.Worksheets("Sheet1").UsedRange.Font
        .ColorIndex = 3
        .Bold = True
        .Size = 15
        .Name = "Times new Roman"
    End With

你会注意到“。”在 with end with 语句之间的行之前,这意味着它应该被视为 With 设置的内容的延续。陈述。

关于由组合框设置的 Excel 自动筛选范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34797731/

相关文章:

excel - 使用 selenium 检查域

javascript过滤器缺少数组

R 过滤行 : where clause : from dataframe

javascript - 如何将占位符设置为表格过滤器?

c++ - Win32 Combobox,打印选中编辑文本框的名称

jQuery 组合框/自动完成但可编辑

c# - 编辑数据表或添加组合框c#

vba - 以当前日期关闭宏

R:XLConnect 不传递变量名称

excel - 在 Excel 中进行数据透视而不进行聚合,以显示文本而不是数字?