拨拨柚
2021-01-12 14:48
采纳率: 42.9%
浏览 63
已采纳

VBA判断单元格是否完全显示或置顶

音标拼写这一行是冻结的

不论滚轮在哪里,前往“4S-U05”单元格时,就一定会前往

但4S-U05永远只会出现在窗口中间的位置(除非视图非常大,大到窗口只能看到2行才有可能永远出现在第一行)

现在希望的是通过判断,自动前往4S-U05那一行,并滚轮下移几行,让4S-U05行紧贴在音标拼写行的下面(以置顶的方式出现)

 

第二个问题是,如何判断当前单元格在窗口中只露出一半?

比如下面的three,它只露出一半,此时你点击它,窗口也不会自动帮你往下移动滚轮以确保完全看到这一个单元格

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • soar3033 2021-01-12 20:49
    已采纳

    第一个需求可以用这段代码

    Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
    Private Sub Workbook_Open()
        Do
            s1 = Windows(1).VisibleRange.Rows.Cells.Address
            s2 = Left(s1, InStr(s1, ":") - 1)
            s3 = Right(s2, Len(s2) - 1)
            s4 = Right(s3, Len(s3) - InStr(s3, "$"))
            If Int(s4) < 4 Then '4是你想置顶的行数
                ActiveWindow.SmallScroll Down:=1
            End If
            DoEvents
            Sleep 100
        Loop
    End Sub
    

    第二个需求没有什么好方法的,vba毕竟是个简化的vb,不可能所有的东西都做到

     

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 拨拨柚 2021-01-13 13:08

    兄弟,其实你已经解答了第二个问题了。。。同样的方法,提取可见范围底部单元格address的行数,如果选中的单元格行数刚好是底部单元格,那就selectionchange事件下移一格。太谢谢了!

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题