Excel 直到sub完成后才显示图片

Excel 直到sub完成后才显示图片,excel,vba,Excel,Vba,我正在用VBA处理Excel中的一个项目。我从其他的作业本上拿到了工作表,这需要一点时间。从用户友好的角度来看,我想展示一幅图片,说明在应用程序获得不同的工作表时加载。 我的问题是,在潜艇完成之前,图片无法显示。我自己也试过解决这个问题 我已经试着运行代码将图片插入另一个被调用的Sub中。我已经尝试添加了多个事件。我已尝试添加应用程序等待。我已经尝试过ActiveWindow.SmallScroll和应用程序。计算全部,但没有任何运气。 我不明白为什么运行代码时图片不会显示 如果我在代码中添加一

我正在用VBA处理Excel中的一个项目。我从其他的作业本上拿到了工作表,这需要一点时间。从用户友好的角度来看,我想展示一幅图片,说明在应用程序获得不同的工作表时加载。 我的问题是,在潜艇完成之前,图片无法显示。我自己也试过解决这个问题

我已经试着运行代码将图片插入另一个被调用的Sub中。我已经尝试添加了多个事件。我已尝试添加应用程序等待。我已经尝试过ActiveWindow.SmallScroll和应用程序。计算全部,但没有任何运气。 我不明白为什么运行代码时图片不会显示

如果我在代码中添加一个断点,图片会显示我想要它的时间。我没有主意了,希望你能帮我

这是我的代码片段:

    Sheet1.Activate
    Application.Goto Reference:=Range("a1"), Scroll:=True
    PicLoad = "PicLoad"
    Sheet1.Pictures.Insert(Pictures & PicLoad & ".jpg").Name = PicLoad & "_picture"
    Sheet1.Pictures(PicLoad & "_picture").Width = Application.Width
    Sheet1.Pictures(PicLoad & "_picture").Left = 0
    Sheet1.Pictures(PicLoad & "_picture").Top = 0
    Sheet1.Shapes(PicLoad & "_picture").Line.Visible = msoTrue
    Sheet1.Shapes(PicLoad & "_picture").Line.ForeColor.ObjectThemeColor = msoThemeColorText1
    Sheet1.Shapes(PicLoad & "_picture").Line.Weight = 1

    If ThisWorkbook.Path = requiredPath Then
        Application.Run "Module4.HideCal"
        For Each ws In ThisWorkbook.Worksheets 'Sletter alle worksheets undtagen nummer 1
            If ws.Index <> 1 Then
                ws.Delete
            End If
        Next
        thisName = ThisWorkbook.Name

        Workbooks.Open (requiredPath & "\" & fileComponents & "*.xl??"), ReadOnly:=True, CorruptLoad:=xlRepairFile  'f?r componenter ind
        fileComponents = ActiveWorkbook.Name
        total = Workbooks(thisName).Worksheets.Count
        Workbooks(fileComponents).Worksheets(1).Copy _
        after:=Workbooks(thisName).Worksheets(total)
        Workbooks(fileComponents).Close 

        *Continues getting worksheets from different workbooks..
一切都正常运转。唯一的问题是,直到潜艇完成,图片才显示出来。我想在If声明之前展示它

致以最诚挚的问候

检查您的应用程序。屏幕更新-如果为假,则表示您已告知Excel不要显示此信息。您需要告诉Excel重新绘制/更新屏幕

有时强制屏幕重画的一种方法是

Application.WindowState= Application.WindowState
为了安全起见,您可能还希望切换应用程序。屏幕更新如下:

Appliction.ScreenUpdating=True
Application.WindowState= Application.WindowState
Application.ScreenUpdating = False

那么什么时候调用Application.ScreenUpdating=False呢?这是在-Application.Run Module4.hidecalies中调用的,但是Application.ScreenUpdating稍后在IF语句的代码中被设置为False。调试时,我还尝试了Application.WindowState=Application.WindowState。也没有运气。
Appliction.ScreenUpdating=True
Application.WindowState= Application.WindowState
Application.ScreenUpdating = False