我需要找到一個單元格是否在屏幕上可見。如何確定工作表單元格是否在VBA中可見/顯示?
通過可見,我並不意味着隱藏。我特別試圖找出一個單元格當前是否顯示在活動工作表中,或者是否未顯示,即:它已從可見活動工作表中滾動。
我在網上看了,也只能找到如下代碼似乎並沒有爲我工作:
Private Sub CommandButton1_Click()
With Worksheets(1).Cells(10, 10)
'MsgBox "Value: " & .Value & ", Top: " & .Top & ", Left: " & .Left
Dim visibleCells As Range
Set visibleCells = Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
If Intersect(Worksheets(1).Cells(10, 10), visibleCells) Is Nothing Then
MsgBox "This cell is not visible."
End If
End With
End Sub
預先感謝您的幫助,
馬爾
只是好奇......如果說有什麼A4單元格是隱藏的,你可以看到截止到你可以考慮電池A4可見或隱藏行說41?另外你會說部分可見的細胞? – 2012-08-13 23:17:12
@SiddharthRout - 我會認爲單元格A4是可見的。關於我想要完成的一些背景知識,我需要找到特定單元格的左側和頂部。所以我需要遍歷單元格到它的左側並通過它上面的單元格。我需要檢查這些單元格是否可見,如果是,我需要總結它們的寬度(或高度)。我現在遇到的問題是,一些單元格被凍結,並且不會顯示爲可見範圍的一部分。我不知道該如何處理。任何幫助或建議? – 2012-08-15 05:05:05
@SiddharthRout - 我想通過使用以下代碼來檢查單元格是否「凍結」: '函數CellIsInFrozenRange(單元格爲範圍)' 'Dim inRow As Boolean' 'Dim inColumn As Boolean'如果(ActiveWindow.SplitRow> 0)then' 'inRow = Not Intersect(cell,Range(Cells(1,1),' 'Cells(ActiveWindow.SplitRow,1).End(xlEnd)))Is Nothing如果(ActiveWindow.SplitColumn> 0)Then' 'inColumn = Not Intersect(cell,Range(Cells(1,1),Cells(1,ActiveWindow.SplitColumn).End(xlDown))如果(ActiveWindow.SplitColumn> 0)Then' '' 'End If' ' )Is Nothing' 'End If' 'CellIsInFrozenRange =(inRow or inColumn)' 'End Function' – 2012-08-15 06:01:10