而且每次导出的时候都会提示this action cannot be competed because the other application is busy choose 'switch' to activate the busy application and courect the problem
当我使用cmdexit导出也会出现这个提示多点几下就可以导出但如果我用SelectExcel3导出时出现不能复制,fso.copyfile App.Path + "\Language\dakasel.xls", App.Path + "\",但却出现错误,请各位大侠指示!!代码如下

解决方案 »

  1.   

    Sub SelectExcel3()
            Dim i As Integer, j As Integer, H As Integer, k As Integer
            Dim fso As Object
            Dim ExcelWasNotRunning As Boolean
            Dim m As New Excel.Application
            Dim m1 As Excel.Workbook, M2 As Excel.Worksheet
    '        On Error GoTo err:
            Set fso = CreateObject("Scripting.FileSystemObject")
            fso.copyfile App.Path + "\Language\dakasel.xls", App.Path + "\"
            If Grid.Rows = 1 Then Exit Sub
            Set m1 = m.Workbooks.Open(App.Path + "\dakasel.XLS")           Set M2 = m1.Worksheets(1)
               If Grid.Rows >= 18 Then
                     m.Rows("1:22").Select
                     m.Selection.Copy
                     For i = 1 To Int((Grid.Rows - 1) / 17)
                          j = i * 22 + 1
                          H = j + 22
                          m.Rows(j).Select
                          m.ActiveSheet.Paste
                     Next
                     m.Visible = True
                     m1.Application.Visible = True
                     m1.Parent.Windows(1).Visible = True
                   For i = 0 To Grid.Rows - 1
                        H = Int(i / 18)
                        k = i Mod 18
                        For j = 0 To 41
                            If j = 1 Then
                                m1.Application.Cells(H * 22 + 4 + k, j + 1) = "'" & Grid.TextMatrix(i, j)
                            Else
                                m1.Application.Cells(H * 22 + 4 + k, j + 1) = Grid.TextMatrix(i, j)
                            End If
                        Next
                   Next
                   m.Application.Quit
                   Set m = Nothing
                   Set m1 = Nothing
                   Set M2 = Nothing
                   Set fso = Nothing
               End If
               Clipboard.Clearerr:
    '        MsgBox "error!"
    End Sub
      

  2.   

    Private Sub Cmdexit_Click()
            Dim i As Integer, j As Integer, H As Integer, k As Integer
            Dim fso As Object
            Dim ExcelWasNotRunning As Boolean
            Dim m As New Excel.Application
            Dim m1 As Excel.Workbook, M2 As Excel.Worksheet
            Set fso = CreateObject("Scripting.FileSystemObject")
            fso.copyfile App.Path + "\Language\dakapay.xls", App.Path + "\"
            If Grid.Rows = 1 Then Exit Sub
            Set m1 = m.Workbooks.Open(App.Path + "\dakapay.XLS")           Set M2 = m1.Worksheets(1)
               If Grid.Rows >= 3 Then
               m.Rows("1:30").Select
               m.Selection.Copy
               For i = 1 To Grid.Rows - 1
               j = i * 30 + 1
               H = j + 30
               m.Rows(j).Select
               m.ActiveSheet.Paste
               Next
               End If
               m.Visible = True
               m1.Application.Visible = True
               m1.Parent.Windows(1).Visible = True
               k = 0
                   For i = 0 To Grid.Rows - 2
                        For j = 1 To Grid.Cols - 1
                            Select Case j
                                Case 1 '工号
                                    m1.Application.Cells(i * 30 + 3, 2) = "'" & Grid.TextMatrix(i + 1, j)
                                    m1.Application.Cells(i * 30 + 2, 3) = Text(0).Text + m1.Application.Cells(i * 30 + 2, 3)
                                    m1.Application.Cells(i * 30 + 2, 7) = m1.Application.Cells(i * 30 + 2, 7) & Text(17).Text
                                Case 2 '姓名
                                    m1.Application.Cells(i * 30 + 4, 2) = Grid.TextMatrix(i + 1, j)
                                Case 3  '入职日期
                                    m1.Application.Cells(i * 30 + 4, 7) = Grid.TextMatrix(i + 1, j)
                                Case 4  '部门
                                    m1.Application.Cells(i * 30 + 3, 5) = Grid.TextMatrix(i + 1, j)
                                Case 5  '职位
                                    m1.Application.Cells(i * 30 + 4, 5) = Grid.TextMatrix(i + 1, j)
                                Case 6  '换休时数
                                    m1.Application.Cells(i * 30 + 6, 3) = Grid.TextMatrix(i + 1, j)
    '                            Case 7
    '                                m1.Application.Cells(i * 26 + 5, 3) = Grid.TextMatrix(i + 1, j)
    '                            Case 8
    '                                m1.Application.Cells(i * 26 + 6, 3) = Grid.TextMatrix(i + 1, j)
    '                            Case 9
    '                                m1.Application.Cells(i * 26 + 7, 3) = Grid.TextMatrix(i + 1, j)
                                Case 10 '值晚班数
                                    m1.Application.Cells(i * 30 + 10, 3) = Grid.TextMatrix(i + 1, j)
                                Case 11 '病假天数
                                    m1.Application.Cells(i * 30 + 12, 3) = Grid.TextMatrix(i + 1, j)
                                Case 12 '请假天数
                                    m1.Application.Cells(i * 30 + 11, 3) = Grid.TextMatrix(i + 1, j)
                                Case 13 '工作天数
                                    m1.Application.Cells(i * 30 + 5, 3) = Grid.TextMatrix(i + 1, j)
                                Case 14 '加点时数
                                    m1.Application.Cells(i * 30 + 7, 3) = Grid.TextMatrix(i + 1, j)
                                Case 15 '星期六加班时数
                                    m1.Application.Cells(i * 30 + 8, 3) = Grid.TextMatrix(i + 1, j)
                                Case 16 '实际加班时数
                                    m1.Application.Cells(i * 30 + 9, 3) = Grid.TextMatrix(i + 1, j)
    '                            Case 17
    '                                m1.Application.Cells(i * 26 + 8, 7) = Grid.TextMatrix(i + 1, j)
    '                            Case 18
    '                                m1.Application.Cells(i * 30 + 6, 7) = Grid.TextMatrix(i + 1, j)
    '                            Case 19
    '                                m1.Application.Cells(i * 30 + 7, 7) = Grid.TextMatrix(i + 1, j)
                                Case 20 '基础工资
                                    m1.Application.Cells(i * 30 + 6, 7) = Grid.TextMatrix(i + 1, j)
                                Case 21 '加点加班费
                                    m1.Application.Cells(i * 30 + 7, 7) = Grid.TextMatrix(i + 1, j)
                                Case 22 '周六加班费
                                    m1.Application.Cells(i * 30 + 8, 7) = Grid.TextMatrix(i + 1, j)
                                Case 23 '夜餐津贴
                                    m1.Application.Cells(i * 30 + 10, 7) = Grid.TextMatrix(i + 1, j)
                                Case 24 '实际加班费
                                    m1.Application.Cells(i * 30 + 9, 7) = Grid.TextMatrix(i + 1, j)
                                Case 25 '勤工奖
                                    m1.Application.Cells(i * 30 + 11, 7) = Grid.TextMatrix(i + 1, j)
    '                            Case 26
    '                                m1.Application.Cells(i * 26 + 10, 7) = Grid.TextMatrix(i + 1, j)
                                Case 27 '旷工天数
                                    m1.Application.Cells(i * 30 + 21, 3) = Grid.TextMatrix(i + 1, j)
                                Case 28 '旷工扣工资
                                    m1.Application.Cells(i * 30 + 21, 7) = Grid.TextMatrix(i + 1, j)
                                Case 29 '迟到分钟
                                    m1.Application.Cells(i * 30 + 20, 3) = Grid.TextMatrix(i + 1, j)
                                Case 30 '迟到扣工资
                                    m1.Application.Cells(i * 30 + 20, 7) = Grid.TextMatrix(i + 1, j)
                                Case 31 '退伙食费
                                    m1.Application.Cells(i * 30 + 13, 7) = Grid.TextMatrix(i + 1, j)
                                Case 32 '扣伙食费
                                    m1.Application.Cells(i * 30 + 17, 7) = Grid.TextMatrix(i + 1, j)
    '                            Case 34
    '                                m1.Application.Cells(i * 26 + 17, 7) = Grid.TextMatrix(i + 1, j)
                                Case 35 '退水电费
                                    m1.Application.Cells(i * 30 + 14, 7) = Grid.TextMatrix(i + 1, j)
                                Case 36 '扣水电费
                                    m1.Application.Cells(i * 30 + 18, 7) = Grid.TextMatrix(i + 1, j)
                                Case 39 '扣税
                                    m1.Application.Cells(i * 30 + 23, 7) = Grid.TextMatrix(i + 1, j)
                                Case 40 '扣保险
                                    m1.Application.Cells(i * 30 + 22, 7) = Grid.TextMatrix(i + 1, j)
                          End Select
                        Next
                        k = i * 14
                   Next
                   Set m = Nothing
                   Set m1 = Nothing
                   Set M2 = Nothing
                   Set fso = Nothing
                   Clipboard.Clear
    End Sub
      

  3.   

    app.path
    如果当前目录是根目录,返回值是:c:\或d:\,
    是有“\”的,
    不是根目录时,返回值是:c:\winnt等,是没有“\”的。你要判断一下。
    ===========================================================
    您还可以前往“http://b4018.xici.net”提问,
    提供:VB、VBA、Office二次开发免费技术支持;
    承接:各类项目开发,如MIS系统,WEB网站,中小型应用软件等等;CO.:Vansoft Workroom
    MSN:[email protected]
    Email:[email protected]
           [email protected]
           [email protected]
    TEL:025-86685867(范,24H)