【发布时间】:2015-11-21 18:51:31
【问题描述】:
我的 Excel 工作表中有一个简单的宏,它可以进行一些简单的计算。 发生的情况是,为了获得更好的用户体验,我希望宏运行,并在完成后返回用户在激活宏之前所在的单元格,这样用户就不会在屏幕上看到任何变化。
好的,这并不难:
Dim activeRow As Integer
Dim activeCol As Integer
Sub myCode
activeRow = ActiveCell.Row
activeCol = ActiveCell.Column
' code...
Cells(activeRow, activeCol).Select
End Sub
上面代码的问题是,在宏运行之前可见的行和列最后不一样,因为宏可能已经将工作表向左、向右、向上或向下滚动。
例如,如果您的工作表上可见的第一行是 15 或 16,您可以在显示屏上看到单元格 E26。
所以这里的问题是如何知道在用户显示屏上可见的行号和列号?
我想知道会是这样的:
Dim topLine As Integer
Dim bottomLine As Integer
topLine = ActiveWorksheet.GetVisibleGrid.TopLine
bottomLine = ActiveWorksheet.GetVisibleGrid.BottomLine
【问题讨论】: