大佬教程收集整理的这篇文章主要介绍了Excel VBA - 从 B 列开始自动筛选后复制数据,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用自动过滤器过滤工作表中的数据并将结果复制到另一个工作表。到目前为止,这有效,但我需要从 B 列开始的数据。到目前为止我还没有找到解决方案。希望有人可以帮助我:)
Dim myRange As Range
lZeile = ActiveSheet.Cells(Rows.Count,4).End(xlUp).Row
MsgBox lZeile
ActiveSheet.Rows("7:7").autoFilter FIEld:=12,Criteria1:="x"
On Error Resume Next
Set myRange = Range(Cells(8,1),Cells(lZeile,19)).SpecialCells(xlVisiblE)
On Error GoTo 0
If myRange Is nothing Then
MsgBox "no cells"
Else
Intersect(Sheets("Sheet1").UsedRange,Sheets("Sheet1").UsedRange.offset(7)).SpecialCells(xlCellTypeVisiblE).copy
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Cells(1,1).PasteSpecial xlPasteValues
End If
下面的代码应该会给你你想要的结果 - 基于你的数据复制的标题在第 1 页的第 7 行。让我知道它是怎么回事。
Option Explicit
Sub CopyFilterX()
Dim ws1 As Worksheet,ws2 As Worksheet
Dim checkRow As Long
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
With ws1.Cells(7,1).CurrentRegion
.AutoFilter 12,"x"
checkRow = ws1.Cells(Rows.Count,2).End(xlUp).Row
If checkRow = 7 Then
MsgBox "no cells"
.AutoFilter
Exit Sub
End If
.offset(1,1).Copy ws2.Cells(1,1)
.AutoFilter
End With
End Sub
,
替换这一行:
Set myRange = Range(Cells(8,1),Cells(lZeile,19)).SpecialCells(xlVisiblE)
有了这个:
Set myRange = Range(Cells(8,2),19)).SpecialCells(xlVisiblE)
以上是大佬教程为你收集整理的Excel VBA - 从 B 列开始自动筛选后复制数据全部内容,希望文章能够帮你解决Excel VBA - 从 B 列开始自动筛选后复制数据所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。