Итак, у меня есть .xlam AddIn с несколькими UDF в нем. В качестве обходного пути к хорошо известному absolute path problem я ввожу мой UDF к текущей рабочей книге, так что UDFs может быть вызван из Workbook, а не из надстройки, используя следующий код:VBA importing udf module from Add In to Workbook
Sub CopyOneModule()
Dim FName As String
On Error GoTo errhandler
With ThisWorkbook
FName = .Path & "\code.txt"
.VBProject.VBComponents("HMFunctions").Export FName
End With
ActiveWorkbook.VBProject.VBComponents.Import FName
MsgBox ("Functions successfully imported")
errhandler:
If Err.Number <> 0 Then
Select Case Err.Number
Case Is = 0:
Case Is = 1004:
MsgBox "Please allow access to Object Model and try again.", vbCritical, "No Access granted"
End Select
End If
Это, кажется, работает хорошо. Итак, мой (возможно, немой) вопрос: есть ли способ заставить книгу с импортированными UDF «отменить» тот же модуль, который хранится в AddIn? Необходимо избегать следующей ситуации, которая может быть очень запутанной: 2 functions instead of 1
Благодарим вас заблаговременно.
Не могли бы вы просто выгрузить или отключить надстройку? В противном случае вы могли бы заменить текст в файле txt перед импортом? – snoopen
Например, у надстройки может быть выделенное частное имя udf, которое вы можете удалить в txt-файле – snoopen
Большое вам спасибо! Я просто заменил в своем фиктивном текстовом файле, и теперь все работает так, как я этого хочу. – Salabon11