A função a seguir pegará um intervalo como uma matriz e a converterá num Vetor de coluna única:
Option Explicit
Function Create_Vector (Matrix_Range As Range) As Variant
Dim No_of_Cols As Integer, No_Of_Rows As Integer
Dim i As Integer
Dim j As Integer
Dim Cell
Let No_of_Cols = Matrix_Range.Columns.Count
Let No_Of_Rows = Matrix_Range.Rows.Count
ReDim Temp_Array (No_of_Cols * No_Of_Rows)
'Elimina NULLs
If Matrix_Range Is Nothing Then Exit Function
If No_of_Cols = 0 Then Exit Function
If No_Of_Rows = 0 Then Exit Function
For j = 1 To No_Of_Rows
For i = 0 To No_of_Cols - 1
Temp_Array ((i * No_Of_Rows) + j) = Matrix_Range.Cells (j, i + 1)
Next i
Next j
Let Create_Vector = Temp_Array
End Function
Private Sub CommandButton1_Click()
Dim Vector
Dim k As Integer
Let Vector = Create_Vector (Sheets ("Sheet1").Range ("A4:D8"))
For k = 1 To UBound(Vector)
Let Sheets ("Sheet1").Range ("B20").Offset (k, 1).Value = Vector (k)
Next k
End Sub
Conheça também estes outros códigos:
Série de Livros nut Project
Série DONUT PROJECT 2015
Clique aqui e nos contate via What's App para avaliarmos seus projetos
Nenhum comentário:
Postar um comentário