I am trying to write a hello world application in Visual Basic for Applications, namely, to modify a cell in an Excel sheet. Here it is:
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
When running, Excel hangs and I cannot stop the script running, only kill the excel process. Debugging it, it hangs at the Workbook.Close line. What is the problem with that line?
The problem is that you are not giving Excel enough time to finish it’s operations. Usually a
DoEventswill solve the problem. Also to avoid confusion, you might want to name your variable as `wbk’ instead of ‘Workbook’