Próbuję napisać aplikację świat powitania w języku Visual Basic for Applications, a mianowicie, aby zmodyfikować komórki w arkuszu Excel. Oto ona:skrypt VBA wisi na Workbook.Close
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
Po uruchomieniu zawiesza Excel i nie mogę przestać skrypt działa, tylko zabić proces Excel. Debugując go, zawiesza się na linii Workbook.Close
. Jaki jest problem z tą linią?
Zobacz http://www.tushar-mehta.com/excel/vba/xl_doesnt_quit/ Normalnie podczas automatyzowania byłoby użyć 'WB.Quit' przed' Ustaw WB = Nothing'. Dobra praktyka, aby nie używać obiektu (skoroszytu) jako nazwy zmiennej – brettdj