VBA, 如何实现文本滚动的效果?(未完成)

问题:VBA,  如何时间文本滚动的效果?

  • 一般来说,从左向右或从右向左的走马灯效果比较常见
  • 还想做一下,上下滚动的效果
  • 这个我自己完全没思考,网上查了很多实现方法,学着实现下

 

思路最重要

  • 多种思路,解决问题,从起点,到终点,观察差别,思考路径
  • 分析起点,分析终点,拟合两者
  • 多用几种方法开阔思路

 

方法1 使用典型的文本改变思路

  • 主函数:显示文本和改变文本
  • delay1函数:实现delay效果
  • stop1函数:控制函数,因为主函数不关闭,实现

 

  • 写法
  • Range("a1") = Right(Range("a1"), Len(Range("a1")) - 1) & Left(Range("a1"), 1)
  • Range("a1") = mid(Range("a1"), 2,Len(Range("a1")) - 1) & Left(Range("a1"), 1)
  • Len(Range("a1"))- 1)千万别写错成    Len(Range("a1")- 1))

 

换成"bb = Right(bb, Len(bb) - 1) & Left(bb, 1)"

上下的利用换行来做?,还是把文本显示为竖条的,换前后呢?

 

dim x

Sub WordsRoll()
x = 1
Range("a1") = "测试这句话的滚动效果"
Do
Range("a1") = Right(Range("a1"), Len(Range("a1")) - 1) & Left(Range("a1"), 1)
delay1 (0.1)
Loop Until x = 0
End Sub



Sub delay1(t)
time1 = Timer()
Do
  DoEvents
Loop While Timer() < (time1 + t)
End Sub



Sub stop1()
x = 0
End Sub

 

 

 

 

方法2:如果可以识别窗体和控件的长宽,利用这个

 

 

思路:往字符串里添加空格?

https://zhidao.baidu.com/question/546331261.html

 

 

还要禁止换行?

 

http://www.exceltip.net/thread-33847-1-1.html

 

参考文档

https://www.jianshu.com/p/99840a95f7ed

http://www.360doc.cn/mip/728196438.html

http://www.excelpx.com/thread-313255-1-1.html

http://www.excelpx.com/thread-198101-1-1.html

http://www.exceltip.net/thread-33847-1-1.html

 

 

​
Private Sub Label1_Click()

End Sub

'------------------走马灯------------------------------
Private Sub UserForm_Activate()
    Dim bb As String
    kk = False
    Label1.WordWrap = False
    bb = Label1
    
    Do
      If kk = True Then Exit Sub
'      bb = Right(bb, 1) & Left(bb, Len(bb) - 1)
'        bb = Right(bb, Len(bb) - 1) & Left(bb, 1)
         bb = Right(bb, Len(bb) - 1) & Left(bb, 1)
      Label1 = bb
      
            vv = Timer
         Do While Timer < vv + 0.1
            DoEvents
         Loop
      
    Loop
    
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
kk = True
End Sub

​

 

Private Sub Label1_Click()

End Sub

'------------------走马灯------------------------------
Private Sub UserForm_Activate()
    Dim bb As String
    kk = False
    Label1.WordWrap = False
    bb = Label1
    
    Do
      If kk = True Then Exit Sub
'      bb = Right(bb, 1) & Left(bb, Len(bb) - 1)
'        bb = Right(bb, Len(bb) - 1) & Left(bb, 1)
         bb = Right(bb, Len(bb) - 1) & Left(bb, 1)
      Label1 = bb
      
            vv = Timer
         Do While Timer < vv + 0.1
            DoEvents
         Loop
      
    Loop
    
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
kk = True
End Sub
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值