VBA,窗体和控件的动态效果之一:scrollbar如何实现自动效果

本文探讨了在VBA中实现窗体和控件动态效果的方法,包括使用ScrollBar自动变化及通过加载sleep库实现时间延迟,展示了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题由来:静态和瞬时的效果不够用,窗体的动态效果更难实现

  • 之前只学习了窗体的静态效果
  • 现在考虑 窗体和控件的动态效果

 

1 srcollbar如何实现自动效果

  • 给 Button 2 绑定了这样一个sub
  • 点击后,Scroll Bar 1 可以自动变化
  • 注意点:因为用的是for 的数量循环,而不是用的真正的延时,所以 scrollbar的范围要设置较大,否则就只能看到瞬时的效果了。看到不到动态的效果。

   

Sub test_scrollbar1()
Debug.Print "开始运行"

Worksheets("sheet3").ScrollBars("scroll Bar 1").Visible = True
Sheet4.Buttons("button 2").Visible = True


Dim s1 As Shape
For Each s1 In Worksheets("sheet3").Shapes
   If s1.Name = "Scroll Bar 1" Then     '注意表单控件名,需要先查,另外首字母必须大写,否则找不到
      Debug.Print "找到了"
      s1.Select
      Selection.Value = 0
         For i = 1 To 1000
            Selection.Value = i
            Worksheets("sheet3").Cells(6, 6) = i
         Next
   Else
      Debug.Print "没找到"
   End If
Next
Debug.Print "运行结束"
End Sub

 

2  但是上面的例子,不是按时间自动,而是持续计算的效果

 

2.1 时间延迟的方法

  • 需要加载新的库,Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  • sleep 毫秒数
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test_t1()

For i = 1 To 10
   Debug.Print i
   Sleep 2000
Next

End Sub

 

2.2 加载sleep库,使用sleep 延时,但是后面总会卡

  • 注意要把scroll bar 的范围弄小点,否则延时会太久

  

 

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub test_scrollbar2()
Debug.Print "开始运行"

Dim s1 As Shape
For Each s1 In Worksheets("sheet3").Shapes
   If s1.Name = "Scroll Bar 1" Then     '注意表单控件名,需要先查,另外首字母必须大写,否则找不到
      Debug.Print "找到了"
      s1.Select
      Selection.Value = 0
         For i = 1 To 10
            Selection.Value = i
            Worksheets("sheet3").Cells(6, 6) = i
            Debug.Print i
            Sleep 1000
         Next
   Else
      Debug.Print "没找到"
   End If
Next
Debug.Print "运行结束"
End Sub

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值