b是一个滚动更新的变量,过10分钟就改变一次(比如为网上传来的某个数字),如何让后一次的b和前一次的b滚动对比大小?
比如06:00的b作为基准点,06:10的b和它比较大小,比较结束时要把06:10的b保存,作06:20的比较基准,如此往下滚动...
----------------------------------------
sub timer1()    '通过timer,b2每10分钟从网上得到一个数据.dim b1, b2,a'b2是不断地从网络上得来新数据,正是这一点造成和一般的循环语句不同,一般的循环语句b是固定的,可以有b=b+1这种看起来很怪的东西b1=0          '???
'关键是这里,如果不给b1预先赋值,那首次执行比较时根本就没法比较.可是如果预先赋值,那下面末尾的b1=b2(把b1的内容更新为b2)又会毫无意义a=b2-b1if a>0 then msgbox"新数据大!"
else if a<0 then msgbox"旧数字大"
     end if
endifb1=b2'比较结束时把前次的b保存,作为后次比较的基准end sub
-----------------------------------------谢谢!

解决方案 »

  1.   

    dim b1, b2,a
    不该摆在Timer事件
    而且在Timer里面不能使用Msgbox 否则会被搞死
    Dim MaxVal&,a&,b1&,b2&
    sub timer1() '通过timer,b2每10分钟从网上得到一个数据
       me.caption=iif(b2>b1,"新数据大!","旧数字大")
       if b2>b1 then b1=b2
    end sub
      

  2.   

    本帖最后由 bcrun 于 2010-11-15 11:42:48 编辑
      

  3.   

    Private b2  As Integer
    Private b1 As IntegerPrivate Sub Timer1_Timer()
        b2 = 接收新数据
        If b1 = 0 Then
            b1 = b2
        Else
            if b2-b1>0 then 
               msgbox "新数据大!"
            elseif b2-b1<0 then  
               msgbox "旧数字大"
            elseif b2-b1=0 then
               msgbox "相等"
            endif
        End If
    End Sub
      

  4.   

    VB里面变量都有默认值
    整型变量定以后默认值就是0,布尔型变量默认值是False
    在语法上不要求显式地赋初始值。
      

  5.   

    不可能吧,估计是你的接收的数据有问题
    Private b2  As Integer
    Private b1 As IntegerPrivate Sub Timer1_Timer()
        b2 = b+1
        If b1 = 0 Then
            b1 = b2
        Else
            if b2-b1>0 then 
               msgbox "新数据大!"
            elseif b2-b1<0 then  
               msgbox "旧数字大"
            elseif b2-b1=0 then
               msgbox "相等"
            endif
        End If
    End Sub
      

  6.   

    Private b2  As Integer
    Private b1 As IntegerPrivate Sub Timer1_Timer()
        b2 = b+1
        If b1 = 0 Then
            b1 = b2
        Else
            if b2-b1>0 then 
               msgbox "新数据大!"
            elseif b2-b1<0 then  
               msgbox "旧数字大"
            elseif b2-b1=0 then
               msgbox "相等"
            endif
            b1=b2  '少了这一句
        End If
    End Sub