ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 山菊花

[分享]控件总在可视范围内显示

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-8-22 12:58 | 显示全部楼层
本帖已被收录到知识树中,索引项:控件
有用,谢谢。

TA的精华主题

TA的得分主题

发表于 2008-8-22 13:09 | 显示全部楼层
感谢山菊花老师分享!!

TA的精华主题

TA的得分主题

发表于 2008-9-3 15:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
为什么我会提示找不到工程或库?

TA的精华主题

TA的得分主题

发表于 2009-1-18 10:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

請幫修改:一個工作表和全部工作表的代碼!

原帖由 山菊花 于 2007-2-5 01:11 发表
为朋友写代码,其中一个功能是控件总在可视范围内显示。现把这部分代码单独做成一个文件,与朋友们共享。404688
[此贴子已经被作者于2008-9-5 16:14:33编辑过]



1.請問山版主我要所有的工作表都具有此功能如何修改代碼?
2.如何更改視窗的大小?

3.新建一個文件將代碼貼到同樣位置!運行時就一句出現錯誤: Shapes("xinxi").Visible = True '顯示資訊視窗
原碼:Public nTime As Date
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Set Target = Target.Cells(1)
    If Target.Row = 1 Then Shapes("xinxi").Visible = False: Exit Sub
    Dim cTxt As String, nRow As Integer
    Dim Temp As String
    cTxt = ""
    nRow = Target.Row
    For i = 1 To 10
        Temp = Cells(nRow, i)
        Temp = IIf(Left(Temp, 1) = ".", "0", "") & Temp
        cTxt = cTxt & Chr(13) & " " & Temp
    Next
    Label2.Caption = cTxt '更新資訊視窗中的文字
   
    With Shapes("xinxi")
   
        '動態改變控制項的垂直位置
        If Target.Offset(1, 0).Top - Cells(ActiveWindow.ScrollRow, 1).Top + 130 > ActiveWindow.UsableHeight Then
            .Top = Cells(ActiveWindow.ScrollRow, 1).Top + ActiveWindow.UsableHeight - 130
        Else
            .Top = Target.Offset(1, 0).Top
        End If
        
        '動態改變控制項的水準位置
        If Target.Offset(0, 1).Left - Cells(1, ActiveWindow.ScrollColumn).Left + 270 > ActiveWindow.Width Then
            .Left = Target.Left - 270
        Else
            .Left = Target.Offset(0, 1).Left
        End If

    End With
   
    nTime = Timer
    Shapes("xinxi").Visible = True '顯示資訊視窗
    Call XinxiVisible
End Sub



Sub XinxiVisible()
    Do While Timer - nTime < 10 '顯示10秒
        DoEvents
    Loop
    Shapes("xinxi").Visible = False '隱藏資訊視窗
End Sub

[ 本帖最后由 hfq926 于 2009-1-18 17:07 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-1-18 17:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-1-8 09:44 | 显示全部楼层
看似复杂的程序,被总版主给化解了。佩服。无语。还是佩服。谢谢分享。

TA的精华主题

TA的得分主题

发表于 2011-1-8 09:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-9-16 01:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
斑竹又强大又有爱,顶!

TA的精华主题

TA的得分主题

发表于 2013-11-4 21:31 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-6-16 09:25 | 显示全部楼层
感谢版主的分享,非常实用。有个问题:控件是如何实现的,没有弄明白?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 21:37 , Processed in 0.029556 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表