Я получаю ошибки из-за недостатка ресурсов в 32-разрядной версии Excel 365 (64-разрядная версия решает проблему, но наши ИТ-специалисты не разрешают ее для числа пользователей, которые будут использовать эту книгу, поэтому я застрял с 32-немного).У меня много оперативной памяти, поэтому я пытаюсь разделить две книги на разные экземпляры, чтобы увеличить выделение памяти (если это плохая стратегия, я буду рад узнать, почему / альтернативы!).
В моей установке есть две рабочие книги: рабочая книга A открывает рабочую книгу B, а рабочая книга B выполняет код тяжелой работы, а затем передает данные обратно в рабочую книгу A в формате значений.
Экземпляр Excel 1: рабочая книга A
Экземпляр Excel 2: Рабочая книга B
Я хочу, чтобы WkbA (открыт в экземпляре Excel 1) вызывал макрос в WrkB, открытый в экземпляре Excel2. Я написал код ниже, чтобы попробовать это.
Dim WkbB As Object
Set WkbB = New Excel.Application
With WkbB
.Visible = True
.Workbooks.Open "P:\Root\WorkbookB.xlsm", True, False
End With
Application.Run "'WkbB.xlsm'!Main"
В строке 'End With' код открывает WkbA и WrkB в двух отдельных экземплярах Excel, как я хочу
Экземпляр Excel1: WrkA
Экземпляр Excel 2: WrkB
Но в строке Application.Run Excel снова открывает WrkB в экземпляре 1
Экземпляр Excel 1: WrkA & WrkB
Экземпляр Excel 2: WrkB
Вместо вызова основной подпрограммы в книге экземпляров 2B.