AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-924464

Mr Ethernet's questions

Martin Hope
Mr Ethernet
Asked: 2019-07-25 05:47:49 +0800 CST

Script VBA para preencher células que contenham qualquer string de texto

  • 3

Estou tentando criar um script VBA que formate condicionalmente um intervalo de células que contenha qualquer string de texto com uma cor de preenchimento de minha escolha.

Até agora, uso uma regra de formatação condicional do Excel para conseguir isso e funciona; no entanto, arrastar e soltar o conteúdo das células de uma coluna para outra faz com que as regras de formatação condicional fiquem muito fragmentadas e rapidamente se tornem uma bagunça. O que começou como duas regras de formatação condicional, uma para a coluna A e outra para a coluna B, rapidamente se torna dezenas de regras separadas à medida que o Excel altera o campo "aplica-se a" das regras a cada cópia ou movimentação dos dados da célula.

Um script VBA capaz de alcançar o mesmo que minhas regras de formatação condicional seria muito melhor, pois não seria afetado por mover ou copiar e colar dados de células. Eu seria capaz de arrastar e soltar livremente meus dados na coluna apropriada sem que o código VBA subjacente fosse afetado.

Alguém aqui com alguma experiência básica em codificação VBA tem alguma ideia para um simples trecho de código que eu poderia usar para simplesmente alterar a cor de preenchimento de qualquer célula que contenha qualquer string? Isso se aplicaria às células A1:A200.

Se você não gostar de alguma coisa sobre minha pergunta por algum motivo, como David Postill fez recentemente, por favor, diga-me em um comentário e me dê alguns minutos para atualizá-lo com qualquer informação adicional que você acha que pode ser necessária, em vez de rejeitá-lo e fugindo.

Interessado apenas em ouvir pessoas com alguma experiência básica em VBA e um desejo de ser útil. Nenhum comentário sarcástico sobre "Não vamos depurar algum script aleatório que você encontrou online para você", por favor. Eu só quero ouvir pessoas positivas e ÚTEIS.

microsoft-excel vba
  • 2 respostas
  • 791 Views
Martin Hope
Mr Ethernet
Asked: 2019-07-04 03:19:20 +0800 CST

Código VBA não classificando datas corretamente (Excel)

  • 3

Eu tenho uma planilha que rastreia itens e datas. Cada item tem uma data correspondente associada a ele:

Captura de tela mostrando a formatação condicional:
Captura de tela mostrando a formatação condicional

Se a data for igual ou inferior a 100 dias a partir da data atual, a célula de data é destacada em verde, usando esta fórmula de formatação condicional:

=TODAY()-C3:C12<120

Se a data for superior a 100 dias a partir da data atual, a célula será destacada em vermelho, usando esta fórmula de formatação condicional:

=TODAY()-C3:C12>=120

Além disso, todas as linhas são classificadas por data, em ordem crescente, e as células de data em branco não produzem formatação condicional:

=ISBLANK(C3:C12)=TRUE

O problema que estou tentando resolver é que, quando uma data é atualizada para um determinado item, todas as linhas precisam ser reorganizadas dinamicamente na nova ordem crescente de data usando o código VBA.

Na captura de tela, você notará que o Item 6 está fora do lugar. Sua linha inteira deve ser movida automaticamente para a sequência correta por ordem de data, pela macro.

Eu tentei incorporar o seguinte script que encontrei online. Infelizmente, alguns comportamentos muito estranhos se seguiram e minhas linhas foram reorganizadas de uma forma que não consegui entender direito. O cabeçalho é movido pela macro abaixo de todo o resto, não importa o que eu faça!

Alguém pode ver o que há de errado com este código VBA? Isso faz uma bagunça absoluta com meus dados assim que atualizo qualquer data.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Range("C3").Sort Key1:=Range("C12"), _
  Order1:=xlAscending, Header:=xlNo, _
  OrderCustom:=1, MatchCase:=False, _
  Orientation:=xlTopToBottom
End Sub

Editar:

"Você não forneceu um link para o script"

Link para o script: https://www.extendoffice.com/documents/excel/3655-excel-auto-sort-by-date.html

"... e, mais importante, nos disse o que o script aleatório deveria realmente fazer"

O script deve classificar automaticamente as datas, quando inseridas ou modificadas, como pode ser inferido em:

"O problema que estou tentando resolver é que, quando uma data é atualizada para um determinado item, todas as linhas precisam ser reorganizadas dinamicamente na nova ordem crescente de data usando o código VBA ."

... e:

" Sua linha inteira deve ser movida automaticamente para a sequência correta por ordem de data, pela macro ."

Desculpe se não deixei claro o suficiente que o objetivo deste script é organizar dinamicamente as datas conforme elas são modificadas.

Aqui está o que acontece quando uma nova data é adicionada; o cabeçalho é movido abaixo dos dados:

O cabeçalho é classificado junto com os dados

Alguém pode ver por que o cabeçalho seria movido abaixo dos dados?

microsoft-excel vba
  • 1 respostas
  • 3920 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve