根据用户表单文本框值隐藏行

时间:2014-12-02 14:44:15

标签: excel excel-vba vba

我有一个带有两个文本框的用户表单......文本框允许用户输入'from'和'to'值。 我想隐藏“AH”列中单元格值大于或等于'from'值且小于或等于'to'值的所有行。

我尝试了以下但是,我没有隐藏的行?

Sub Worksheet_Calculate()

Dim LastRow As Long, c As Range

LastRow = Cells(Cells.Rows.Count, "AH").End(xlUp).Row

For Each c In Range("AH3:AH1000")

    If (c.Value >= UserForm1.TextBox1.Value And c.Value <= UserForm1.TextBox2.Value) Then
        c.EntireRow.Hidden = False
    End If

Next

End Sub

有什么想法吗?

由于

我添加了一个else代码......这可以正常提供我说明from和to值(如下所示)。 但是,我无法在文本框中引用这些值。当我尝试使用下面的行并引用UserForm1.TextBox1.ValueUserForm1.TextBox2.Value时代码运行但什么也没做?

Sub Worksheet_Calculate()

Dim LastRow As Long, c As Range

LastRow = Cells(Cells.Rows.Count, "AH").End(xlUp).Row

For Each c In Range("AH3:AH1000")

    If (c.Value >= 0 And c.Value <= 1500) Then
    '(c.Value > UserForm1.TextBox1.Value And c.Value < UserForm1.TextBox2.Value) Then
        c.EntireRow.Hidden = False

    Else: c.EntireRow.Hidden = True

    End If

Next

End Sub

1 个答案:

答案 0 :(得分:1)

你会踢自己......改变

c.EntireRow.Hidden = False

c.EntireRow.Hidden = True