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