Como duplicar os dados e classificar uma matriz multidimensional vba no excel

VBA automatiza tarefas redundantes Excel.

Aplicação do Visual Basic (VBA) é a linguagem de programação que Excel incorporar na sua edição de macro. O editor VBE (Visual Basic Editor) Macro no Microsoft Excel permite aos usuários escrever programas simples que automatizam tarefas redundantes. Aqui vamos escrever uma macro VBA que irá duplicar os dados em uma planilha, classificá-lo em uma matriz multidimensional e escrevê-lo para uma nova folha de trabalho. Este processo é útil quando uma planilha ordenada é necessária, mas a planilha original, não triados deve permanecer intacta.

  • Lançamento Excel, clicando em "Começar," "Microsoft Office Suite," "Excel."

  • Inicie o Editor do Visual Basic (VBE) pressionando "ALT" e "F11" simultaneamente.

  • Faça o processo para copiar uma planilha em uma matriz multidimensional. Selecione o seguinte código e copiá-lo para o VBE:

    Sub Read_Into_Array ()

    Dim arrData () As Variant

    Dim ColACount As Long

    Dim i As Long

    ColACount = Range (Gama ("A1"), Alcance("UMA" & Rows.Count) .End (xlUp)). Contagem

    ReDim arrData (1 To ColACount, 1 a 2)

    Para i = 1 a ColACount

    arrData (i, 1) = Intervalo ("UMA" &Amp- i) .Value

    arrData (i, 2) = Intervalo ("B" &Amp- i) .Value

    Proximo eu

    End Sub

  • Classificar a matriz com o processo de Bubble Sort VBA. Copie e cole o seguinte código abaixo o código da etapa anterior. Ele irá classificar a matriz bidimensional:

    Sub Sort_Array ()

    SortColumm1 = 0

    SortColumn2 = 3

    Para i = LBound (ArrayName, 1) Para UBound (ArrayName, 1) - 1

     Para J = LimiteInf (ArrData, 1) Para LimiteSup (ArrData, 1) - 1

    Condition1 = ArrData (j, SortColumn1) gt; ArrData (j + 1, SortColumn1)

    Condition2 = ArrData (j, SortColumn1) = ArrData (j + 1, SortColumn1) e _



    ArrData (J, SortColumn2) gt; ArrData (j + 1, SortColumn2)

    Se Condition1 ou Condition2 seguida

    Para y = LBound (ArrData, 2) Para UBound (ArrData, 2)

    t = ArrData (j, y)

    ArrData (j, y) = ArrData (j + 1, y)

    Nome_da_Matriz (j + 1, y) = t

    Próximo y

    Fim se

    Próximo

    Próximo

    End Sub

  • Criar a nova planilha que conterá os dados classificados. Copie e cole o seguinte código abaixo o código listado até agora:

    Sub New_Worksheet ()

    WS Dim como Planilha

    Definir WS = Sheets.Add

    End Sub

  • Copiar a matriz para a nova planilha. Copie e cole o seguinte código abaixo o código criado acima:

    Sub Copy_Array ()

    [A1] .Resize (UBound (myarr), UBound (Application.Transpose (myarr))) = myarr

    End Sub

  • Salvar a macro. Clique "Arquivo," "Salvar," dar-lhe um nome e clique em "Salvar."

  • Executar a macro. Abra uma planilha que você gostaria de copiar e classificar. Clique "Ferramentas," "macros," selecione a macro que você acabou de criar. A nova planilha irá aparecer e preencherá automaticamente.

dicas & avisos

  • O código de exemplo, aqui vai classificar a matriz em ordem crescente (a-z, 0-9) Para inverter a ordem da classificação, altere a "gt;" nas linhas de quinto e sétimo da etapa quatro a "lt;".
De esta maneira? Compartilhar em redes sociais:

LiveInternet