Active Scripting Engine может помочь вам. Создайте экземпляр ScriptControl
ActiveX, используйте метод .AddObject()
для добавления ссылки на объект Application
в Excel в среду выполнения элемента управления сценарием, установите третий параметр на True
, чтобы сделать доступными также все элементы Application
. Затем просто используйте метод .Eval()
для оценки любого свойства или метода, который является членом Application
. Пример ниже показывает оценку свойства Worksheets()
:
Sub TestQueryTable()
Dim objQueryTable As QueryTable
Dim strEvalContent As String
strEvalContent = "Worksheets(""RAW DATA"").Range(""A1"").QueryTable"
Set objQueryTable = EvalObject(strEvalContent)
objQueryTable.Refresh
MsgBox objQueryTable.Connection
End Sub
Function EvalObject(strEvalContent As String) As Object
With CreateObject("ScriptControl")
.Language = "VBScript"
.AddObject "app", Application, True
Set EvalObject = .Eval(strEvalContent)
End With
End Function
Если вы работаете в 64-разрядной версии Office, этот ответ может помочь вам заставить ScriptControl
работать.