首页 > 解决方案 > 尽管在后台运行,但窗口不可见

问题描述

我有一个正在尝试通过 Access 运行的宏,它将打开一个 Excel 工作表,对其执行一些操作,然后使工作表保持打开状态。

我的大部分工作都在工作,除了无法让我的 excel 文档明显打开。如果我检查任务管理器,一个 excel 进程正在后台运行,所以确实发生了一些事情,只是我看不到任何东西。

我尝试对通过 stackoverflow 和其他资源找到的一些代码进行采样,我相信您会在我当前的代码中看到其中的一些。但我尝试了大约一个小时,但无济于事。

Private Sub Command1_Click()

Dim fd As FileDialog
Dim MySheetPath As String
Dim Xl As Excel.Application
Dim XlBook As Excel.Workbook
Dim XlSheet As Excel.Worksheet

On Error GoTo ErrorHandler
'allowing selection of the time
Set fd = Application.FileDialog(msoFileDialogFilePicker)

fd.AllowMultiSelect = False

If fd.Show = True Then
    If fd.SelectedItems(1) <> vbNullString Then
        MySheetPath = fd.SelectedItems(1)
    End If
Else
    End
End If

Set Xl = CreateObject("Excel.Application")
Set XlBook = GetObject(MySheetPath)

ShowaWindow (MySheetPath)

Set XlSheet = XlBook.Worksheets(1)

XlSheet.Rows(2).EntireRow.Insert
XlSheet.Range("D2") = "ABC"

Set Xl = Nothing
Set XlBook = Nothing
Set XlSheet = Nothing

Exit Sub

ErrorHandler:
Set fd = Nothing
MsgBox "Error " & Err & ": " & Error(Err)

End Sub

Sub ShowaWindow(sFileName As String)
Dim oWb As Workbook

Set oWb = GetObject(sFileName)

For Each oWb In Workbooks
    If LCase(oWb.Name) <> LCase(sFileName) Then
        oWb.Windows(1).Visible = True
        Exit For
    End If
Next

End Sub

理想情况下,我希望能够看到工作表出现。

标签: vbams-access

解决方案


Set Xl = CreateObject("Excel.Application")
Xl.Visible=True

您不需要在创建对象后立即放置它,就在您将对象设置为 Nothing 之前。


推荐阅读