程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Excel VBA - 从 B 列开始自动筛选后复制数据大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Excel VBA - 从 B 列开始自动筛选后复制数据?

开发过程中遇到Excel VBA - 从 B 列开始自动筛选后复制数据的问题如何解决?下面主要结合日常开发的经验,给出你关于Excel VBA - 从 B 列开始自动筛选后复制数据的解决方法建议,希望对你解决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,请注明来意。
标签:-