Excel Excel高级过滤器-Excel

hgncfbus  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(147)

我使用下面的代码首先做了一个高级过滤器。然后我需要将过滤范围(除了标题)更改为“空”,以避免循环,因为它会太慢。但是在最后一行中有一些错误,我在所有过滤单元格中得到一个#VALUE!错误。有人知道这里不起作用吗?

Sub upper()
    Dim rgdata As Range
    Dim rgcriteria As Range
    
    
    'filter
    Set rgdata = Worksheets("sheet1").Range("A16").CurrentRegion
    Set rgcriteria = Worksheets("sheet1").Range("A12").CurrentRegion
    rgdata.AdvancedFilter xlFilterInPlace, rgcriteria  
    
    
    'upper
    Dim rngup As Range
  Set rngup =  worksheets("sheet1").Range("A16").CurrentRegion.SpecialCells(xlCellTypeVisible).offset(1,0)
    
    rngup = evaluate("index(upper(" & rngup.address & "),)")

End Sub

字符串

qjp7pelc

qjp7pelc1#

  • Offset(1,0)应该在SpecialCells之前使用
  • 过滤范围可以是一个不连续的范围,循环通过其中的每个区域。
'upper
    Dim rngup As Range
    With .Range("A16").CurrentRegion
        Set rngup = .Offset(1, 0).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
    End With
    Dim c As Range
    If Not rngup Is Nothing Then
        For Each c In rngup.Areas
            c.Value = Evaluate("upper(" & c.Address & ")")
        Next
    End If

字符串

相关问题