ОК, я думаю, это то, что вы спрашиваете
Sub a()
b 1
Dim c As Integer
c = 5
b c
End Sub
Sub b(arg As Integer)
MsgBox arg '1 first time, then 5 second time
End Sub
Вам нужно передать аргумент, который может быть фиксированным или переменным, в Sub.Поэтому b 1
говорит, что запускает подпрограмму или функцию с именем b
и отправляет аргумент 1
.
Подпрограмма b
ожидает этот аргумент и выводит его в виде окна сообщения.
В вашем случае вы можете использовать
MainAppenderSub userResponse
или
Call MainAppenderSub(userResponse)
(которые в точности совпадают друг с другом)
Как это будетработать с вашим кодом
Sub UserInput()
userResponse = InputBox(Prompt:="Please select the action you want to perform?" & vbNewLine & vbNewLine & "Enter 1 to sort test cases as per test-data-input" & vbNewLine & "Enter 2 to Rectify steps")
MainAppenderSub userResponse
End Sub
Sub MainAppenderSub(arg As Long)
'Some code
appendCellContent arg, lreturn 'where does lreturn come from
End Sub
Sub appendCellContent(arg As Long, anotherArg as Long)
'Some code
'Here I want to call appender1 only if it has been called by Case 1 else call appeder2 if it has been called by Case 2
appender arg, anotherArg
End Sub
Sub appender(arg As Long, lreturn as Long)
Dim i As Long
For i = 1 To lreturn
If ActiveCell.Offset(0, 1) <> Empty Then
Select Case arg
Case 1
ActiveCell.Formula = "=RC[2]"
Case 2
ActiveCell.Value = "=RC[-1]&""-""&RC[2]"
End Select
End If
ActiveCell.Offset(1, 0).Activate
Next i
End Sub