É possível ordenar uma tabela por data de modificação de entrada? Especificamente, como acessar do VBA a hora da última modificação de um objeto?

2

Eu tenho um documento do MS Word onde eu acumulo e freqüentemente modifico certos dados em uma tabela muito longa. Então eu gostaria de ordenar os dados pelo último horário de modificação nas linhas. É claro que se eu adicionar uma coluna onde eu inserir o tempo de modificação manualmente isso funcionaria, mas eu gostaria de evitar isso se possível.

OK, como a pergunta foi colocada em espera com a solicitação para torná-la mais concreta, estou tentando modificá-la adequadamente.

O que eu especificamente quero (e então eu posso fazer isso sozinho) é isso:

Como o MS Word possui recursos como o controle de alterações, cada parte modificada do texto deve ter seu tempo de última modificação registrado de alguma forma.

Minha pergunta é - como posso acessar essas informações a partir de uma macro do Visual Basic? Quero dizer algo como ThisTable.ThisCell.ModificationTime () ou ThatTable.CurrentRow.LastModificationSessionTime () ou algo semelhante.

    

1 resposta

2

Isso é para uma planilha Excel . Os dados são inseridos ou modificados na coluna A. A macro insere automaticamente a data / hora na coluna B. A macro classifica a coluna A & B pela coluna B, colocando o mais recente no topo.

Insira a seguinte macro de eventos na área de código da planilha:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A As Range
    Dim AB As Range
    Set A = Range("A:A")
    Set AB = Range("A:B")

    If Intersect(Target, A) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
        Target.Offset(0, 1) = Now
        AB.Sort Key1:=Range("B1"), Order1:=xlDescending, Header:=xlNo, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
    Application.EnableEvents = True
End Sub

Por ser um código de planilha, é muito fácil de instalar e usar automaticamente:

  1. clique com o botão direito do mouse no nome da guia próximo à parte inferior da janela do Excel
  2. selecione Exibir código - isso abre uma janela do VBE
  3. cole o material e feche a janela do VBE

Se você tiver alguma dúvida, tente primeiro em uma planilha de teste.

Se você salvar a pasta de trabalho, a macro será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx

Para remover a macro:

  1. abrir as janelas do VBE como acima
  2. limpe o código
  3. feche a janela do VBE

Para saber mais sobre macros em geral, consulte:

link

e

link

Para saber mais sobre macros de eventos (código da planilha), consulte:

link

As macros devem estar ativadas para que isso funcione!

    
por 31.01.2015 / 15:55