/ / Usando o Excel VBA para aplicar a formatação condicional em outra pasta de trabalho com base em regras diferentes - excel, vba, formatação, condicional

Usando o Excel VBA para aplicar a formatação condicional em outra pasta de trabalho com base em regras diferentes - excel, vba, formatação, condicional

Eu tenho um grande banco de dados e estou executando um vbascript para criar várias pastas de trabalho diferentes que contêm apenas alguns dados de amostra do banco de dados completo. Isso está funcionando bem, estou usando uma matriz para obter todas as entradas relevantes e, em seguida, colando a matriz inteira em um intervalo definido de uma nova pasta de trabalho (e não copiando célula por célula de uma planilha para outra). Meu problema agora é que eu preciso adicionar duas regras para formatação condicional.

Eu estou procurando por algo como:

 Application.Worksheets("Database").Cells(k, ColumnOfInterest).Select

With Selection
.FormatConditions.Delete
.FormulaR1C1 = "=RC[-3] =""A"""
.FormatConditions.Add Type:=xlExpression, Formula1:=.FormulaR1C1Local
.FormatConditions(1).Interior.ColorIndex = 6
.Formula = ""

End With

With Selection
.FormatConditions.Delete
.FormulaR1C1 = "=RC[0] ="""""
.FormatConditions.Add Type:=xlExpression, Formula1:=.FormulaR1C1Local
.FormatConditions(1).Interior.ColorIndex = 5
.Formula = ""

End With

Em outras palavras, quando o usuário selecionou "A" ema terceira célula para a esquerda, então a cor da célula de relevância deve ser o índice de cor 6, se a célula de interesse estiver vazia, então o código de cor é 5. Infelizmente este código não funciona e apenas cria uma única regra para condicional formatação.

Respostas:

2 para resposta № 1

.FormatConditions.Delete exclui a condição de formato anterior. Se você remover .FormatConditions.Delete na segunda parte e alterar .FormatConditions (1) para .FormatConditions (2), ele deverá funcionar:

Application.Worksheets("Database").Cells(k, ColumnOfInterest).Select

With Selection

.FormatConditions.Delete

.FormulaR1C1 = "=RC[-3] =""A"""
.FormatConditions.Add Type:=xlExpression, Formula1:=.FormulaR1C1Local
.FormatConditions(1).Interior.ColorIndex = 6
.Formula = ""

.FormulaR1C1 = "=RC[0] ="""""
.FormatConditions.Add Type:=xlExpression, Formula1:=.FormulaR1C1Local
.FormatConditions(2).Interior.ColorIndex = 5
.Formula = ""

End With