Итак, у меня есть надстройка .xlam с несколькими пользовательскими функциями. В качестве обходного пути к известной проблеме с абсолютным путем Я импортирую свою пользовательскую функцию в текущую рабочую книгу, чтобы пользовательские функции можно было вызывать из рабочей книги, а не из надстройки, используя следующий код:
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 «невидимыми» тем же модулем, который хранится в надстройке? Это необходимо, чтобы избежать следующей ситуации, которая может быть очень запутанной:
Заранее спасибо.