如何确定工作表单元格是否在VBA中可见/显示?

我需要find一个单元格是否在屏幕上可见。

通过可见,我不是说隐藏。 我特别试图找出一个单元格当前是否显示在活动工作表中,或者是否未显示,即:它已经从可见活动工作表中滚动。

我在网上查找,只能find下面的代码,似乎并不适合我:

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 

在此先感谢您的帮助,

马尔万

这是一个你想要的function:

 Function CellIsInVisibleRange(cell As Range) CellIsInVisibleRange = Not Intersect(ActiveWindow.VisibleRange, cell) Is Nothing End Function 

至less我认为是的。 直到现在,我还没有意识到VisibleRange属性。

像这样称呼它:

 If CellIsInVisibleRange(ActiveSheet.Range("A35")) Then MsgBox "Cell is visible" Else MsgBox "Cell isn't visible" End If