如何在使用宏时在后台运行加载项?

时间:2015-02-18 09:22:38

标签: excel vba excel-vba

假设我在Excel工作表中使用了一个加载项。我写了一个宏,我从输入表中获取输入并将其粘贴到加载项中,然后我将输出显示在另一张表中,应该进一步显示。

问题是,当我运行宏时,它不会等待后处理由添加完成,只显示之前那些输出单元格中的输出。

我在粘贴输入值后尝试使用等待和睡眠,以便花一些时间进行后处理,但仍然无法正常工作..它提供相同的输出。

如果我在粘贴后添加一个断点有助于运行后台处理但我想在没有断点的情况下运行它,它运行正常

请帮助!

For j = 1 To i ' loop to check if case is selected

Chk = "Chk_Case" & j
If Me.Controls(Chk).Value = True Then
' For h = 1 To j ' if case is selected, inputs will be used to generate output and will be put in datasheet
    ' to get col no of selected case
    Case_Name = Me.Controls(Chk).Caption

    Column_number = Application.WorksheetFunction.Match(Case_Name, Sheets("Sheet3").Range("A7:K7"), 0)
    ' to get column name of selected case
    Col_Name = GetColumnName(Column_number)
    ''input range
    FinalRange = Col_Name & "8:" & Col_Name & "29"
    ''copy input and paste in sheet 1 for output
    Sheets("Sheet3").Activate
    Sheets("Sheet3").Range(FinalRange).Select
    Selection.Copy
    Sheets("Sheet1").Activate
    Sheets("Sheet1").Range("C6:C27").Select
    ActiveSheet.Paste
   'Application.Wait (Now + TimeValue("00:00:10"))
    Application.CutCopyMode = False
        '''pasting output from sheet 24 to datasheet
       ' Sleep (4000)



        Application.CalculateFull
        Sheets("Sheet24").Activate
        Sheets("Sheet24").Range("B17:G39").Select
        'Application.Wait (Now + TimeValue("00:00:10"))
        Selection.Copy


       ' Application.Wait (Now + TimeValue("00:00:08"))


        Sheets("Datasheet").Activate
        Sheets("Datasheet").Cells(6, 14 + g).PasteSpecial Paste:=xlPasteValues
        Sheets("Datasheet").Cells(6, 14 + g).PasteSpecial Paste:=xlPasteFormats
        Application.CutCopyMode = False

        g = g + 6
'Next h
End If
Next j

0 个答案:

没有答案