Como rodar Sub com parâmetro no Excel VBA?

0

Eu tenho o procedimento no Excel VBA, que é um parâmetro de intervalo necessário e também produzirá um intervalo de saída exatamente na célula ativa.

O código é assim:

Sub test(oSource as Range)
  Dim oTarget As Range
  Dim oCell As Range

  Set oTarget = Range(ActiveCell, ActiveCell.Offset(0, 0))

  For Each oCell In oSource
    If oCell.Value <> "" Then
        oTarget.Activate

        oTarget.Offset(0, 0).Value = oCell.Text
        oTarget.Offset(0, 1).Value = oCell.Text

        Set oTarget = oTarget.Offset(1, 0)
    End If
  Next
End Sub

Como eu chamo isso? Eu já tentei usar uma função como essa

Function(SourceRange as Range)
   Call test(SourceRange)
End Function

Mas não está funcionando porque test() produzirá intervalo na célula ativa e substituirá a função, o excel fornecerá aviso de valor circular. Eu não consigo registrá-lo em macro, o botão de criação sempre desabilitado quando eu clico em jogar. Então, como eu chamo isso de Sub?

    
por Septian Primadewa 25.04.2016 / 08:40

1 resposta

0

Você chama o primeiro procedimento passando um intervalo como argumento.

test(ThisWorkbook.Worksheet("Sheet1").Range("A1"))

    
por 25.04.2016 / 08:57