Я пытаюсь скопировать диапазон из Ezcel в Word и вставить его в качестве изображения.Запуск макросов после потери фокуса
Моя установка в настоящее время:
- WORD запускает макрос, который создает объект Excel и открывает Workbook1.xlsm
- WORD вызывает макрос на Workbook1.xlsm
- макросоци- копирует диапазон на в буфер обмена.
- WORD затем вставляет буфер в качестве изображения.
После вставки в WORD я больше не могу вызывать макросы в ссылочном документе xl. Мой код, который живет в макросе WORD VBA:
Dim xl As Object
Set xl = CreateObject("Excel.Application")
xl.Workbooks.Open ("\\path\to\DESKTOP\qrap\xlsHelper.xlsm")
For i = 0 To 10
xl.Run "copy", "\\path\to\DESKTOP\qrap\stukken\2003 2015-2 financieel.xls"
Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, _
Placement:=wdInLine, DisplayAsIcon:=False
Next
xl.ActiveWorkbook.Close (False)
xl.Quit
Set xl = Nothing
На второй итерации, линия xl.Run ...
бросает Runtime Error 1004: Macro cannot be executed
. Работает нормально в первый раз. Хорошо работает, если я не переключусь на WORD.
Как перефокусировать Excel, чтобы макрос мог работать правильно?
Кроме того, copy
макрос в файле Excel заключается в следующем:
Dim oWb As Workbook
Public Sub copy(filename As String)
If Not (oWb Is Nothing) Then
oWb.Close
Set oWb = Nothing
End If
Set oWb = Workbooks.Open(filename)
ActiveCell.CurrentRegion.Select
Selection.copy
End Sub
Как выглядит код 'copy'? – Rory
@Rory добавил код для Excel Macro. – steenbergh