Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 按列筛选表。(过滤器-->;过滤器介于-->;数字范围-->;输出新表_Vba_Excel_Filter - Fatal编程技术网

Vba 按列筛选表。(过滤器-->;过滤器介于-->;数字范围-->;输出新表

Vba 按列筛选表。(过滤器-->;过滤器介于-->;数字范围-->;输出新表,vba,excel,filter,Vba,Excel,Filter,我正在尝试使用VBA按列的值筛选表,然后在工作表上输出一个新表(已筛选),但输出一个新区域。注意,我希望单元格引用范围号 在下面的假excel表上。我想筛选“年龄”列的范围。即过滤器-->年龄-->介于1-3之间(单元格引用)。第一个表是原始数据。第二个是我希望使用VBA作为输出 我尝试将下面的代码与所需的输出相匹配。缺少与列本身无关的数据(获取完整列) 下面是原始数据和所需输出的图像 选项显式 子表过滤器() 调暗最后一行的长度,x的长度 长度相同的柱,i=4 暗拷贝范围作为范围 附页(“

我正在尝试使用VBA按列的值筛选表,然后在工作表上输出一个新表(已筛选),但输出一个新区域。注意,我希望单元格引用范围号

在下面的假excel表上。我想筛选“年龄”列的范围。即过滤器-->年龄-->介于1-3之间(单元格引用)。第一个表是原始数据。第二个是我希望使用VBA作为输出

我尝试将下面的代码与所需的输出相匹配。缺少与列本身无关的数据(获取完整列)

下面是原始数据和所需输出的图像

选项显式
子表过滤器()
调暗最后一行的长度,x的长度
长度相同的柱,i=4
暗拷贝范围作为范围
附页(“第1页”)
lastRow=.Range(“A”&.Rows.Count).End(xlUp).Row
对于x=1到最后一行

如果Len(Trim(.Range(“A”&x).Value))1算出了。这适用于带有数字而不是文本值的模型。我认为代码中有一些低效之处,但它确实有效。主要问题是它使用了两张表,而不是在同一张表上创建一个新表。 D2/D3为单元参考号,G为列

次到期日()

将ws设置为工作表 作为工作表的Dim模型

设置ws=ThisWorkbook.Sheets(“输出”) Set One=ThisWorkbook.Sheets(“模型”)

如果不是IsEmpty(一个范围(“D2”))和非IsEmpty(一个范围(“D3”)),则 与ws .Range($G$7:$G$”和.Range(“G”和Rows.Count).End(xlUp.Row).自动筛选字段:=1_ 准则1:=“>”和一个.Range(“D2”)值_ 运算符:=xlAnd_
准则2:=“我不太确定你在这里问什么……请参考。如果你想要代码方面的帮助,我们非常愿意帮助你,但是如果Len(Trim(.Range(“A”)和x.Value))1,我们不提供代码行

Option Explicit
Sub tablefilter()
    Dim lastRow As Long, x As Long
    Dim lasColumn As Long, i = 4 
    Dim CopyRange As Range

    With Sheets("Sheet1")
        lastRow = .Range("A" & .Rows.Count).End(xlUp).Row

        For x = 1 To lastRow
            If Len(Trim(.Range("A" & x).Value)) 1<3 Then
                If CopyRange Is Nothing Then
                    Set CopyRange = .Rows(i)
                Else
                    Set CopyRange = Union(CopyRange, .Rows(x))
                End If
            End If
        Next
        If Not CopyRange Is Nothing Then
            CopyRange.Copy Sheets("Sheet2").Rows(1)
        End If
    End With