|
进度在状态栏显示,显示改进下。- Option Explicit
- Sub test()
- Dim strPath As String, strFile As String
- Dim wb As Workbook
- Dim strSheet$
- Dim strNewSheet$
- Dim strMsg$
- strSheet = "月度考勤簿"
- strPath = ThisWorkbook.Path & Application.PathSeparator
- strFile = Dir(strPath & "*.xls")
- Application.ScreenUpdating = False
- On Error GoTo errorhandle
-
- Do While Len(strFile)
- If strFile <> ThisWorkbook.Name And strFile Like "*.xls" Then
- '找到文件后执行的操作
- Set wb = GetObject(strPath & strFile)
- With wb
- If SheetIsExist(wb, strSheet) Then
- strNewSheet = Replace(strFile, ".xls", "")
- If Not SheetIsExist(ThisWorkbook, strNewSheet) Then
- Worksheets.Add after:=Worksheets(Worksheets.Count)
- ActiveSheet.Name = strNewSheet
- End If
- Application.StatusBar = "正在处理工作簿 " & strPath & strFile
- .Worksheets(strSheet).UsedRange.Copy Worksheets(strNewSheet).Range("a1")
- Else
- strMsg = strMsg & " 工作簿 " & strFile & " 内没有工作表 " & strSheet & vbCr
- End If
- Windows(.Name).Visible = True
- .Close False
- End With
- End If
- strFile = Dir
- Loop
- Worksheets("汇总").Activate
- Application.ScreenUpdating = True
- If Len(strMsg) = 0 Then
- strMsg = "汇总完成"
- Else
- strMsg = "汇总完成" & vbCr & "出错情况如下:" & vbCr & strMsg
- End If
- Application.StatusBar = False
- MsgBox strMsg, vbInformation
- Exit Sub
- errorhandle:
- If MsgBox("错误代码:" & Err.Number & vbCr & _
- "错误描述:" & Err.Description & vbCr & vbCr & _
- "忽略错误,点击是,结束点击 否", vbYesNo + vbDefaultButton1 + vbCritical, "出错了") = vbYes Then
- strMsg = strMsg & " " & strNewSheet & " 复制出错" & vbCr
- Resume Next
- Else
- On Error Resume Next
- wb.Close False
- Application.ScreenUpdating = True
- End If
- End Sub
- Function SheetIsExist(wb As Workbook, index)
- On Error Resume Next
- SheetIsExist = Len(wb.Worksheets(index).Name) > 0
- End Function
复制代码 |
|