簡體   English   中英

vba腳本掛在Workbook.Close

[英]vba script hangs at Workbook.Close

我試圖在Visual Basic for Applications中編寫一個hello world應用程序,即修改Excel工作表中的單元格。 這里是:

Sub hello()

    Dim obj As Object
    Dim Workbook As Object

    Set obj = CreateObject("Excel.Application")
    Set Workbook = obj.Workbooks.Open("C:\Users\gbuday\Desktop\Oktatás\Excel\start.xlsx")

    Workbook.Worksheets("Munka1").Range("B3") = "Hello World!"

    Workbook.Close
    Set Workbook = Nothing
    Set obj = Nothing

End Sub

運行時,Excel掛起,我無法停止腳本運行,只能殺死excel進程。 調試它,它掛在Workbook.Close行。 那條線有什么問題?

問題是你沒有給Excel足夠的時間來完成它的操作。 通常DoEvents會解決問題。 另外,為避免混淆,您可能希望將變量命名為“wbk”而不是“Workbook”

Sub hello()
    Dim obj As Object, wbk As Object

    Set obj = CreateObject("Excel.Application")
    Set wbk = obj.Workbooks.Open("C:\Users\gbuday\Desktop\Oktatás\Excel\start.xlsx")

    wbk.Worksheets("Munka1").Range("B3") = "Hello World!"

    DoEvents

    '~~> Change True to False if you do not want to save
    wbk.Close SaveChanges:=True

    Set wbk = Nothing: Set obj = Nothing
End Sub

它應該是

Workbooks.Close

我還認為“工作簿”是一個保留字,你應該使用類似“wb”的東西。

Dim wb As Workbook

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM