我在调用word生成文本时候,生成的时间有点长,我想添加一个进度条,但不知道这个时间该怎么设置。我设置进度条时进度条的时间和文本生成的时间没有同步(也就是说进度条结束时文本还没有完全生成)。这个该怎么控制?还有我想在进度条上显示百分比该怎么设置呀?恳请达人们帮帮忙,谢谢啦先!

解决方案 »

  1.   

    比如,行总数为pb.max = sum_line 每行递增时为value = i
      

  2.   

    通常不是按照时间来显式进度的,而是按照输出的数量来显式进度。先取得数据总数量,比如有100行要输出,初始化:
        ProgressBar1.Max = 100
        ProgressBar1.Value = 0
    然后在每个循环步骤中
        ProgressBar1.Value = ProgressBar1.Value+1
        DoEvents
      

  3.   

    这样试试
    ProgressBar1.Value=0
    while  ProgressBar1.Value=100
    ProgressBar1.Value=ProgressBar1.Value+1
    '打开文件过程代码
     *
     *
    wend
      

  4.   

    找不到一个数据量的话,你可以参考WINDOWS开机的进度条,你也不知道它什么时候走完,反正一直在走.你在做导出的时候,让进度条来回的走吧,导完后就提示一下...
      

  5.   

    调用word生成文本快慢与机子配置有关,ProgressBar1.Max = 100定死后肯定不同步了,建议用FindWindow函数获取
    word的窗体够本句柄来结束ProgressBar1,这样就同步了。
      

  6.   

    1、这恐怕有点难,Word生成文本文件是由Word内部实现的,你如何获得它的数量?除非你自己解析Word文档!
    2、有一个最简单的办法:显示“正在转换中...”&“ 当前时间:”& time,表示操作正在进行中,没有死机。
      

  7.   

    同意楼上的说法,你调用的是WORD的转换功能,你的程序是无法得知WORD的处理进度的.
    除非是你自己的代码来作转换才可能得知总的处理量和目前的进度的
      

  8.   

    既然是生成word,你的数据就该有来源,有了来源就可以确定总数据量
    每生成若干份中的一份,进度条就+1即使数据来源是实时的,你的word也有个完成的条件吧,那么来源还是确定的.这似乎没什么疑问啊
      

  9.   

    调用word生成文本时候是读word生成文本文档还是生成word文档啊 看起来很晕...
      

  10.   

    就用滚动条滚动慢一点,如果滚动到头在重新开始。上面加个标签提示“正在进行中……”,Me.MousePointer = 9鼠标变成不可用状态。完成后Me.MousePointer = 0,滚动条隐藏。标签提示“完成“。