Работа с двумя VBE одновременно - PullRequest
1 голос
/ 29 июня 2010

Я только что взял на себя обслуживание довольно страшного устаревшего vba на работе. Когда у меня есть свободное время, я по сути реструктурирую и переписываю его в новые шаблоны. Время от времени мне удавалось использовать своего рода сбой и одновременно открывать два разных экземпляра VBE. Я не знаю точно, что я сделал, чтобы это произошло, но это делает мою жизнь намного проще, поэтому мне интересно, знает ли кто-нибудь еще. Я предполагаю, что это как-то связано с запуском Word в качестве нового экземпляра, но я не могу изменить настройки типа файла на своем рабочем ПК.

Редактировать: я обычно копирую и вставляю в Excel и делаю так, но это не идеально, потому что я также использую много макросов Excel для других частей моей работы

Ответы [ 2 ]

1 голос
/ 23 декабря 2016

Вы можете использовать Application.Run для выполнения кода на другом хосте VBA, и вы можете перейти к коду через VBE.

Sub CallExcelUDFFromNonExcelHost()

  'Get an existing instance of Excel
  Dim appXL As Excel.Application
  Set appXL = GetObject(, "Excel.Application")

  'Get the already opened Excel workbook
  Dim wbk As Excel.Workbook
  Set wbk = appXL.Workbooks("MyExcelFunctions.xlsm")

  'Call the function in the Excel workbook
  Dim result
  result = appXL.Run(wbk.VBProject.Name & ".MyFunction", "Some Argument")

End Sub
0 голосов
/ 29 июня 2010

Попробуйте открыть Word через код:

Dim ws As Object

Set ws = CreateObject("word.application")
ws.Visible = True

Вы должны получить второй экземпляр.

...