Álv*_*cía 4 excel vba autofilter excel-vba visible
我的主要目标是复制自动过滤器的可见单元格,然后将可见单元格的尺寸复制到新工作表中.我正在使用此代码:
Sheets(1).AutoFilterMode = False
Sheets(1).Range("A1:A1").AutoFilter Field:=columnaNumeroIntervalo, criteria1:=CDec(paramCantidadCriterio)
Sheets(1).Range("A1:A1").AutoFilter Field:=columnaNumeroIntervaloUnidades, Criteria1:=paramUnidadesCriterio
MsgBox AutoFilter.Range.SpecialCells(xlCellTypeVisible)(2, 11).Value
Run Code Online (Sandbox Code Playgroud)
在最后一行,我想检查单元格的值.如果我使用Cells(2,11)而不是SpecialCells我可以看到细胞具有片材的所有细胞,可见且不可见.所以我想用SpecialCells.
如果我使用特殊单元格,我会收到以下错误:
error '-2147417848 (80010108) in runtime. Automatization error.
对于执行类型的时间,它似乎进入一个循环,最后给出了这个错误.也许SpecialCells修改自动过滤器然后在每次修改中再次执行自动过滤器?
要使用AutoFilter的可见单元格,您必须使用,Offset如果您计划排除标题.你得到的错误是因为你错过了一个"." 之前Cells(2,11)
'~~> Remove any filters
ActiveSheet.AutoFilterMode = False
'~~> Filter,
With rRange
.AutoFilter Field:=1, Criteria1:=strCriteria
'~~> offset(to exclude headers)
Debug.Print .Offset(1, 0).SpecialCells(xlCellTypeVisible).Cells(2,11).Value
Debug.Print .SpecialCells(xlCellTypeVisible).Cells(2,11).Value
End With
'~~> Remove any filters
ActiveSheet.AutoFilterMode = False
Run Code Online (Sandbox Code Playgroud)
我决定将此作为此答案的一部分添加,以便将来可能对其他人有所帮助.
比方说我们的范围是
A1:F6

当您运行以下代码时,根据您是否使用Offset,您将获得这些结果.
Option Explicit
Sub Sample()
'~~> Remove any filters
ActiveSheet.AutoFilterMode = False
Dim rRange As Range
Dim Rnge As Range
Set rRange = Sheets("Sheet1").Range("A1:F6")
'~~> Filter,
With rRange
.AutoFilter Field:=1, Criteria1:="<>2"
'~~> Offset(to exclude headers)
Set Rnge = .Offset(1, 0).SpecialCells(xlCellTypeVisible)
Debug.Print Range(Rnge.Address).Address
Debug.Print ActiveSheet.Cells(3, 2).Address
Debug.Print Range(Rnge.Address).Cells(3, 2).Address
Debug.Print "--------------------------------------------------"
'~~> To include headers
Set Rnge = .SpecialCells(xlCellTypeVisible)
Debug.Print Range(Rnge.Address).Address
Debug.Print ActiveSheet.Cells(3, 2).Address
Debug.Print Range(Rnge.Address).Cells(3, 2).Address
End With
'~~> Remove any filters
ActiveSheet.AutoFilterMode = False
End Sub
Run Code Online (Sandbox Code Playgroud)

HTH
| 归档时间: |
|
| 查看次数: |
8590 次 |
| 最近记录: |