我怎樣才可以把VB程式移植到OFFICE   VBA(office控件中沒有timer控件﹐但我已經下載了一個)中﹐有一個紅色的對象不對﹐但我不知道該用什么 
  
程序说明:   利用一个计时器、一个标签框和二个命令按钮制作一个动态秒表,如图1所示。单击“开始”命令按钮,秒表开始计时,单击“结束”命令按钮,秒表结束计时,并在标签框显示运行时间,如“运行了0小时2分10秒”。(假设对象的属性都在程序代码中设定) 
  
  
程序代码如下: 
        
VB.NET code
    Dim x As Long
    Dim h As Integer, m As Integer, s As Integer
    Private Sub Form_Load()
       Form1.Caption = "动态秒表(小时:分:秒)"
       Command1.Caption = "开始[&S]"
       Command2.Caption = "结束[&E]"
       Label1.Alignment = 2    '居中对齐
       Label1.Caption = " 0: 0: 0"
       Timer1.Interval =1000
       Timer1.Enabled = False
       x = 0
    End Sub
    Private Sub Command1_Click()
       Timer1.Enabled = True
    End Sub
    Private Sub Command2_Click()
       Timer1.Enabled = False
       x =0
       Label1.Caption = "运行了"+Str(h)+"小时"+Str(m)+"分"+Str(s)+"秒"
    End Sub
    Private Sub Timer1_Timer()
       x = x + 1
       h = x \ 3600
       m = (x Mod 3600) \ 60
       s =x  Mod  60
       Label1.Caption = Str(h) + ":" + Str(m) + ":" + Str(s)
    End Sub
 

解决方案 »

  1.   

    你这个vb.net没有用到高级功能,跟vba是一样的
      

  2.   

    Dim   x   As   Long 
    Dim   h   As   long,   m   As   long,   s   As   long ................................... Private   Sub   Timer1_Timer()'每1秒钟触发一次 
                  dim   cjl   as   long 
                  x   =   x   +   1 
                  h=(x/3600)'取得小时                   
                  cjl=(x   mod   3600) 
                  m=(cjl/60)'取得分钟                 
                  s=(cjl   mod   60)'取得秒种 
                  Label1.Caption   =   iif(len(trim(Str(h))) <2,"0"&trim(Str(h)),trim(Str(h)))   +   ":"   +   iif(len(trim(Str(m))) <2,"0"&trim(Str(m)),trim(Str(m)))   +   ":"   +   iif(len(trim(Str(s))) <2,"0"&trim(Str(s)),trim(Str(s))) 
    End   Sub 
      
      

  3.   

    对不起楼上的朋友,发了之后,我总觉得有问题,上机一试,果然如此。得了分我也不踏实啊。正确的应该是:
    Option ExplicitDim x As Long
    Dim h As Long, m As Long, s As Long
    Private Sub Form_Load()
          Form1.StartUpPosition = 2
          Form1.Caption = "动态秒表(小时:分:秒)"
          Command1.Caption = "开始[&S]"
          Command2.Caption = "结束[&E]"
          Label1.Alignment = 2             '居中对齐
          Label1.Caption = "00:00:00"
          Timer1.Interval = 1000
          Timer1.Enabled = False
          Label1.BackColor = &H0&
          Label1.ForeColor = &HFF00&
          Label1.Font.Name = "Arial Rounded MT Bold"
          Label1.Alignment = 2
          x = 0
    End Sub
    Private Sub Command1_Click()
          Timer1.Enabled = True
          Label1.Font.Size = 24
    End Sub
    Private Sub Command2_Click()
          Timer1.Enabled = False
          Label1.Font.Size = 14
          x = 0
          Label1.Caption = "运行了" + Str(h) + "小时" + Str(m) + "分" + Str(s) + "秒"
    End Sub
    Private Sub Timer1_Timer()            '每1秒钟触发一次
            Dim cjlh As Long, cjlm As Long
            x = x + 1
            cjlh = Int(x / 3600)
            h = cjlh '取得小时
            cjlm = Int((x Mod 3600) / 60) '关键在这里,用INT取整,否则每30秒进1,有点奇怪
            m = cjlm '取得分钟
            s = ((x Mod 3600) Mod 60) '取得秒种
            Label1.Caption = IIf(Len(Trim(Str(h))) < 2, "0" & Trim(Str(h)), Trim(Str(h))) + ":" + IIf(Len(Trim(Str(m))) < 2, "0" & Trim(Str(m)), Trim(Str(m))) + ":" + IIf(Len(Trim(Str(s))) < 2, "0" & Trim(Str(s)), Trim(Str(s)))
    End Sub我改进了一下,用了毫秒级,动得比较快,下载地址:http://download.csdn.net/source/316696