Я использую макрос в одном файле Excel для вызова макроса из другого файла Excel.
Я хочу вернуть несколько значений, но получаю ошибки.
Вот процесс flow:
macroFile1 Sub1 (вызывает macroFile2 Sub3 и передает аргументы) -> macroFile2 Sub3 (выполняет некоторый процесс и, как ожидается, вернет несколько значений в macroFile1 Sub1)
macroFile1 Sub1 вызывает macroFile2 Sub3, но macroFile2 Sub3 не возвращает значения.
Я пробовал следующие методы:
method1:
'(macroFile1)
returnCodes = Application.Run("'" & macroFileName & "'!pasteCapture", _
thisWorkbookName, selectedFile, cmntText, workingSheet, _
cmntRowNum, cmntColNum, imgRowNum, imgColNum, size, clrTyp)
Ошибка при выполнении:
Ошибка компиляции: невозможно присвоить массиву
method2:
'(macroFile1)
Sub 1
'(This sub is going to call macroFile2 Sub3, and macroFile2 Sub3 is
'going to do some process, and then return values to the following Sub2.)
Application.Run "'" & macroFileName & "'!pasteCapture", _
thisWorkbookName, selectedFile, cmntText, workingSheet, _
cmntRowNum, cmntColNum, imgRowNum, _
imgColNum, size, clrTyp
'thisWorkbookName is the absolute path of the file containing macroFile1.
'I am passing this to 'macroFile2 Sub3 so that I can call
'macroFile1 Sub2 from macroFile2 Sub3.
End Sub
Sub 2
'(I wrote this sub so that I can receive return codes from macroFile2 Sub3.
'This sub is right below
'macroFile1 Sub1.)
Sub getReturnCodes(extError, fileNotFound, opnError, worksheetNotFound, _
rowNotNumeric, rowOutOfScope, colNotNumeric, colOutOfScope, _
sizeNotNumeric, sizeOutOfScope, incorrectClrTyp, success)
If success = 0 Then
MsgBox "Successful", vbOKOnly
Else
MsgBox "Error", vbOKOnly
End If
End Sub
'(macroFile2)
Sub 3
'(This sub will receive multiple arguments from macroFile1 Sub1,
'process them, and call macroFile1 Sub2 to pass multiple return values.)
'Some process...
Application.Run "'" & calledBy & "'!getReturnCodes", _
extError, fileNotFound, opnError, worksheetNotFound, rowNotNumeric, _
rowOutOfScope, colNotNumeric, colOutOfScope, sizeNotNumeric, sizeOutOfScope, _
incorrectClrTyp, success
End Sub
Ошибка при выполнении:
Макрос может быть недоступен в этой книге или все макросы могут быть отключены
I хотите передать несколько значений в качестве возвращаемых значений в macroFile1. Мне разрешено передавать их на Sub1 или Sub2 (я также пытался изменить Sub2 на функцию, но ошибка произошла в Application.Run
).