24.08.2020 Views

Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM (1)

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

344 Parte V: Juntando Tudo

Figura 20-3:

Usando a

função

MonthNames

para

retornar um

array de 12

elementos.

Se você quiser exibir os nomes de meses em uma coluna, selecione 12

células em uma coluna e use esta fórmula de array (não se esqueça de

entrar com ela usando Ctrl+Shift+Enter):

=TRANSPOR(MonthNames())

Retornando uma lista classificada

Suponha que você tem uma lista de nomes que deseja mostrar em

ordem classificada em uma outra faixa de células. Não seria ótimo ter

uma função de planilha para fazer isso por você?

A função personalizada nesta seção faz exatamente isso: ela toma uma

faixa de células de coluna única como seu argumento e, depois, retorna

um array daquelas células classificadas. A Figura 20-4 mostra como

funciona. A faixa A2:A13 contém alguns nomes. A faixa C2:C13 contém

essa fórmula de array de múltiplas células (lembre-se, a fórmula deve

ser inserida pressionando Ctrl+Shift+Enter).

=Sorted(A2:A13)

Eis o código para a função Sorted:

Function Sorted(Rng As Range)

Dim SortedData() As Variant

Dim Cell As Range

Dim Temp As Variant, i As Long, j As Long

Dim NonEmpty As Long

‘ transfere os dados para SortedData

For Each Cell In Rng

If Not IsEmpty(Cell) Then

NonEmpty = NonEmpty + 1

ReDim Preserve SortedData(1 To NonEmpty)

SortedData(NonEmpty) = Cell.Value

End If

Next Cell

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!