【问题标题】:VBA wrong value of ActiveCell.Top after unplugging monitor拔下显示器后 ActiveCell.Top 的 VBA 值错误
【发布时间】:2019-02-15 15:16:10
【问题描述】:

拔下显示器后获取Target.Top 或“ActiveCell.Top”的正确值。

当我运行这个宏时,我得到了正确的 Target.Top 值。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   MsgBox Target.Top
End Sub

拔掉显示器后,我的笔记本电脑分辨率不同,小很多但返回值保持不变。程序没有注意到分辨率改变并返回与以前相同的值的事实,这是错误的。我无法使用代码:

ActiveSheet.OLEObjects("TempCombo").Top=Target.Top

定位组合框,因为它位于错误的位置。

有没有办法重置Target.Top(分辨率)值?

【问题讨论】:

  • Excel 距离以points 为单位,即 1/72 英寸。该值不应取决于分辨率。
  • @GSerg Target.Top 值在切换监视器后不会改变。如果确实是每英寸点数,那么更换显示器应该不会对定位对象产生负面影响。
  • 单位是缇而不是我认为的点,但可能是点的子/超。是的,它们是独立于屏幕的,所以在切换显示器后不要改变

标签: excel vba screen-resolution


【解决方案1】:

我的笔记本电脑和连接的便携式显示器也有同样的问题。如果我将电子表格保留在笔记本电脑显示器中,则代码将获取单元格 .Top right,如果我在其他显示器中移动电子表格,则 .Top 会偏离大约一半的单元格高度。我通过让宏与笔记本电脑中的电子表格一起运行来解决这个问题。我知道这听起来更像是一种解决方法,而不是实际情况

【讨论】:

    猜你喜欢
    • 2014-07-24
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多