VBA - передавать аргументы из одной функции в другую, не возвращаясь к первой функции - PullRequest
0 голосов
/ 30 октября 2019

Любые методы, в которых я могу передавать переменные из одной функции в другую, не возвращаясь к первой функции. Скажем:

Function F2(Optional endAll As Boolean = False)

Cells(R1,C1)= Evaluate(jGetFormula)

If endAll Then End


End Sub

Function f1()
jGetFormula = " = " & "A1" & "*" & 10 & "^" & 3 & "*" A2 & "/" & 148 
R1 = Selection.Row
C1 = Selection.Column
Call F2(True)

End Function

здесь функция f1 () создает формулу Excel и получает соответствующее число строк и столбцов в ячейках, где =f1 () вошел в ячейку и передал их другой функции и завершился, не возвращаясь к f1 (). Функция f2 () принимает аргументы из f1 () и преобразует строку в формулу и заменяет = f1 () на формулу как = A1 * 10 ^ 3 * A2 / 148 в ячейке, где ранее было написано = f2 ().

1 Ответ

0 голосов
/ 02 ноября 2019
Function ffeeee2(jR1 As Long, jC1 As Long, jGetFormula As String, Optional endAll As Boolean = True)
        MsgBox jGetFormula
        MsgBox "function f1 entered in cell (" & jR1 & "," & jC1 & ")"
        MsgBox "This ends f2"
        If endAll Then Exit Function
    End Function

    Function ffeeee1()
        Dim jR1 As Long
        Dim jC1 As Long
        Dim jGetFormula As String
        jR1 = Selection.Row
        jC1 = Selection.Column
        jGetFormula = "Function value from f1 (row number + column number =" & jR1 + jC1 & ")"
        Call ffeeee2(jR1, jC1, jGetFormula, True)
    End Function
...