Позднее связывание объекта Microsoft Windows Common Control (TreeView) - PullRequest
0 голосов
/ 06 февраля 2019

Я реализовал функцию DragDrop для своей базы данных Excel, используя элемент управления TreeView, используя этот код:

Private Sub TreeView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim StrPath As String

StrPath = Data.Files(1)
'path saved in UserForm label named "FilePathLB"
FilePathLB = StrPath

End Sub

Он прекрасно работает на большинстве машин, на которые я распространил файл, однако на некоторых машинахв более старых версиях MS Office выдает ошибку в самой первой строке (Private Sub ...) из-за невозможности найти библиотеку Microsoft Windows Common Control.

Мой вопрос: возможно ли позднее связать эту библиотеку итем самым предотвращая ошибку?

Или, по крайней мере, можно ли добавить отладчик для предотвращения отображения ошибки, например, On Error Resume Next для всего Sub?Я понимаю, что в этом случае функция DragDrop не будет работать, но это лучше, чем ошибка.

1 Ответ

0 голосов
/ 06 февраля 2019

Для вашего последнего вопроса:

Sub ()...
On Error GoTo ErrorHandler
    'Your code
Exit Sub
ErrorHandler:
Msgbox "Could not load DragDrop function. Program execution has been terminated.", vbExclamation, "Error"
End Sub

Если вы хотите, вы также можете просто оставить MsgBox.

РЕДАКТИРОВАТЬ:

не будет работать, поскольку разрыв кода в первой строке.Код ниже, чтобы поддержать мой комментарий.Если в под-макросе возникает ошибка, то для переменной PassedSub не будет установлено значение True, что указывает на ошибку.

Public PassedSub As Boolean
Sub test1()

On Error Resume Next

Call test2
If PassedSub = False Then GoTo ErrorHandler
On Error GoTo 0

Exit Sub
ErrorHandler:
MsgBox "Could not load DragDrop function. Program execution has been terminated.", vbExclamation, "Error"
End Sub

Sub test2()

Debug.Print 2 / 0
PassedSub = True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...