Como preencher a seqüência no Excel a partir de intervalos dados em outras planilhas?

0

Eu tenho uma planilha do Excel em que duas colunas (digamos J e K ) entre os dados na planilha1 são as seguintes:

J ------------ K

1 ----------- 25

26 --------- 50

101 ------ 150

Quais são alguns intervalos. Eu tenho outra folha onde eu tenho coluna (digamos I ), que eu quero atualizá-lo para ter os valores, conforme indicado pelo intervalo; ou seja, valores de coluna de I a serem 1,2,3,...25,26,27,...50,101,102,103,...150 (verticalmente). Observe que os intervalos em J-K nem sempre são contínuos (por exemplo, intervalo entre 50 e 101 ) e nem sempre na ordem correta.

Estou tentando encontrar alguma maneira automatizada de conseguir isso, em vez de copiar manualmente o valor inicial do intervalo (de I ) e arrastar para baixo sequencialmente até o valor final (de J ) para cada indivíduo I e J value, que é um conjunto muito grande de dados. Existe alguma maneira de ajudar nisso?

Observação: estou usando o Microsoft Excel 2013, mas uma solução para o Excel 2010 ou 2007 é mais do que bem-vinda ...

    
por amyassin 05.11.2013 / 17:40

1 resposta

1

Esta macro deve fazer isso:

Option Explicit

Sub FillSequence()
    Dim SrcSheet As Worksheet
    Set SrcSheet = Sheets("Sheet1")

    Dim SrcCol As Long
    Dim SrcRow As Long

    SrcCol = 10
    SrcRow = 1

    While Not IsEmpty(SrcSheet.Cells(SrcRow, SrcCol))
        Dim StartNumber As Long
        Dim EndNumber As Long

        StartNumber = SrcSheet.Cells(SrcRow, SrcCol)
        EndNumber = SrcSheet.Cells(SrcRow, SrcCol + 1)

        If EndNumber < StartNumber Then
            MsgBox "Input data wrong."
            Exit Sub
        End If

        Dim Number As Long

        For Number = StartNumber To EndNumber
            ActiveCell = Number
            ActiveCell.Offset(1, 0).Select ' This part could be optimized so
                                           ' that the selection does not have
                                           ' to be updated each time - but 
                                           ' this should suffice for the 
                                           ' moment. Just let me know if the
                                           ' performance is too bad for
                                           ' practical use.
        Next

        SrcRow = SrcRow + 1
    Wend

End Sub

Ele assume que seus números estão na Planilha1 nas colunas J e K (ou 10 e 11) e começam na primeira linha. Basta executá-lo ao selecionar a primeira célula em que a sequência deve começar. HTH.

    
por 07.11.2013 / 21:40