Pracuję na vba projektu, który zasadniczo wygląda następująco:Excel Upaść podczas odprawy niezmodyfikowanej skoroszytu programu Excel do programu SharePoint z VBA
if workbooks.canCheckOut(filename) = true then
workbooks.CheckOut(filename)
set workbookVariable = workboooks.Open(filename)
else
' Pesudocode: Display error message
' Quit
end if
' Pseudocode: Do some stuff with workbookVariable.
If workbookVariable.saved = false then
workbookVariable.save
end if
If workbookVariable.canCheckIn then
workbookVariable.checkIn
Set workbookVariable = Nothing
else
msgbox "Error message goes here", vbCritical
end if
' Pseudocode: quit
(Edit: Miałem „Jeśli workbookVariable.Saved = True”; Nie ma sensu zapisywanie pliku, jeśli jest już zapisany ... Teraz jest to zaktualizowane, aby odzwierciedlić to, co naprawdę mam.)
Jeśli skoroszyt zostanie zmodyfikowany i zostanie zapisany, wszystko działa poprawnie. Zapisuje się, zostaje ponownie sprawdzony w programie SharePoint, a program kończy się normalnie.
Jednak, jeśli skoroszyt nie zostanie zmodyfikowany, gdy przejdzie do sprawdzenia w części programu, program Excel ulega awarii i pojawia się komunikat o błędzie: "Błąd automatyzacji".
Próbowałem nawet wprowadzenie polecenia oczekiwania po poleceniu checkIn
, bez powodzenia ...
Co tu się dzieje? Czy ktoś może wskazać mi właściwy kierunek?
Być może za każdym razem, gdy możesz spróbować zapisać, czy problem nadal występuje. Chociaż możesz nie modyfikować pliku. – bonCodigo
Tak naprawdę to testowałem i rozwiązałem problem; chociaż nie tak naprawdę zamierzam jechać. –
To prawda, to tylko * ukrywanie się *, nie rozwiązując prawdziwego problemu;) – bonCodigo