一个关于进度条的有关问题?

一个关于进度条的问题????单击按钮运行以下程序...Form1.Show vbModal以下是调用一个类,是用来导出Excel

一个关于进度条的问题????


单击按钮运行以下程序...

Form1.Show vbModal

'以下是调用一个类,是用来导出Excel数据的
Dim Cls_ReportExcel As New Cls_ReportExcel
Set Cls_ReportExcel = New Cls_ReportExcel
Call Cls_ReportExcel.ExportExcel_Card("CardInfo")
Set Cls_ReportExcel = Nothing

我想说的是,Form1中有一个进度条,用来显示导出进度,
如果设置显示模式为VBModal的话,必须得等时进度条跑到头才运行下面的代码,如果不设置为VBModal的话,就看不到效果了,那得等报表导出后才会看到效果.

现在我想实现的就是,Form1始终在窗体最上层,并且当进度条跑到头,Excel报表这时也打开.

'------Form1中代码-------

Private Sub Form_Load()

  Dim MaxCount As Integer
  
  Select Case Frm_Main.SSTab_Main.Tab
  Case 0
  MaxCount = Frm_Main.LVW_PlanRemind.ListItems.Count
  Case 1
  MaxCount = Frm_Main.LVW_Account.ListItems.Count
  Case 2
  MaxCount = Frm_Main.LVW_InfCard.ListItems.Count
  Case 3
  MaxCount = Frm_Main.LVW_WebSite.ListItems.Count
  Case 4
  MaxCount = Frm_Main.LVW_DataList.ListItems.Count
  Case 5
  MaxCount = Frm_Main.LVW_Diary.ListItems.Count
  Case Else
  MaxCount = 0
  End Select

'----PBar为进度条-----

  Me.PBar.Value = 0
  Me.PBar.Min = 0
  Me.PBar.Max = MaxCount + 1
  Me.Timer1.Enabled = True
 
End Sub

Private Sub Timer1_Timer()
 
  Me.PBar.Value = Me.PBar.Value + 1
  
  Me.Lab_Complete.Caption = Int(Me.PBar.Value / Me.PBar.Max * 100) & Chr(32) & "%"
  
  If Me.PBar.Value >= Me.PBar.Max Then
  Me.Timer1.Enabled = False
  Unload Me
  End If
   
End Sub


请问如何实现啊......

谢谢了...



[解决办法]
应该在 Cls_ReportExcel 中提供一个 Progress 的消息,在 ExportExcel_Card 中每处理一条就触发一次 Progress。
Form 中不能用 Timer,直接接收 Cls_ReportExcel 的 Progress 消息,在消息中更改 PBAr.Value。