excel - 应用自动筛选时复制特定范围
问题描述
在这里需要一些帮助。行 A 用于标题,并为字段 16 应用了“自动过滤器”,在这种情况下,当过滤它以查找“Q1”时。我将在其他季度重复此步骤。
我试图一次只复制一个特定的行和范围。例如:第一列 A...复制仅过滤的内容然后粘贴到我想要的位置...然后我会写一个新行以仅获取 D 列并将其粘贴到我想要的任何位置。
我目前正在使用 UsedRange,但不确定如何摆脱它。Range(A:A) 是否有效,Range("B:B") 那么如果它是连续的,我可以为列 F、G 和 G=H 执行 Range(F:H)。但是不断收到错误1004
希望我说得通
Dim a As Workbook
Dim b As Worksheet
Dim c As Worksheet
Dim d As Worksheet
Set a = ThisWorkbook
Set b = Worksheets("Opportunity(BE)")
Set c = Worksheets("Pipeline(BE)")
Set d = Worksheets("Renewal(BE)")
a.Worksheets("Probable").Range("A1:T1").AutoFilter Field:=17,
Criteria1:="Open"
a.Worksheets("Probable").Range("A1:T1").AutoFilter Field:=16, Criteria1:="Q1"
a.Worksheets("Probable").Range("B:B").Offset(1).SpecialCells(xlCellTypeVisible).Copy
b.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
解决方案
未经测试,但一种方法是使用Intersect
捕获您想要的特定列。
Sub x()
Dim a As Workbook
Dim b As Worksheet
Dim c As Worksheet
Dim d As Worksheet
Dim r As Range
Set a = ThisWorkbook
Set b = Worksheets("Opportunity(BE)")
Set c = Worksheets("Pipeline(BE)")
Set d = Worksheets("Renewal(BE)")
With a.Worksheets("Probable")
.Range("A1:T1").AutoFilter Field:=16, Criteria1:="Open"
Set r = Intersect(.Range("B:B"), .AutoFilter.Range) 'column B of filtered data
r.Offset(1).Resize(r.Rows.Count - 1).Copy 'remove header
b.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
End With
End Sub
推荐阅读
- vba - Powerpoint VBA - 防止编辑形状文本
- birt - 如何根据页面上返回和显示的数据隐藏母版页标题中的网格中的行
- python-3.x - pandoc 没有找到,long_description 不好,不要上传到 PyPI
- java - 并行运行 testMethods 而不是 testng 中的测试...?
- ssl - 变异 Webhook 不会调用端点,因为证书由未知机构签名
- php - 为卡片 php 进行分页
- amazon-web-services - 如何在 CloudFormation 中获取 SSM 文档的 ARN?
- react-native - 评估项目“:@react-native-firebase_auth”时出现问题
- ios - 根据 Model 类获取 CoreData 实体,而不是创建单独的 NSManaged 子类
- python - 创建随机数据库并将其从 numpy 转换为 pandas