簡體   English   中英

Selection.SpecialCells() 方法返回意外范圍(Excel VBA)

[英]Selection.SpecialCells() method returns unexpected range (Excel VBA)

當我 select 三個單元格的范圍說 B3:B5 時,該方法按預期運行並顯示三個消息,分別為“3”、“4”和“5”。

Sub visTest()
    Dim c As Range
    For Each c In Selection.SpecialCells(xlCellTypeVisible)
        MsgBox c.row
    Next c
End Sub

問題是當我 select 只有一個單元格時: Selection.SpecialCells(xlCellTypeVisible)返回工作表上的所有可見單元格並從單元格 A1 開始。

如何讓它只返回一個選定單元格中的一個可見單元格? 為什么會出現問題?

謝謝!

這將執行正確的限制:

Sub visTest()
    Dim c As Range
    For Each c In Intersect(Selection, Selection.SpecialCells(xlCellTypeVisible))
        MsgBox c.Row
    Next c
End Sub

它返回工作表上所有已使用的單元格的原因是,與Excel中的許多其他方法一樣,SpecialCells方法假定如果您指定的范圍僅包含單個單元格,則您需要工作表的已使用范圍

為了消除使用“ specialCells”時范圍錯誤的問題,只需將這一行添加到代碼中

If Selection.Cells.Count > 1 Then Selection.SpecialCells(xlCellTypeVisible).Select End If

只有當實際銷售的區域包含多個單元格時,excell才會使用這種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM