Como alterar a fonte de uma fórmula específica que faz parte de uma célula do Excel?

0
="InterContinental Vienna @ "&M9&" "&M42&" p/room p/night"

com base no exemplo acima, M9 = EUR e M42 = 150

O resultado que estou procurando é:

InterContinental Vienna @ EUR 150 p/room p/night

Como faço isso usando o VBA para cada linha em uma coluna específica onde M9 aparece na célula?

    
por Metta and Emma Eu 24.06.2016 / 05:54

3 respostas

1

Parece que você precisa de um pouco mais de VBA, por isso criei o código abaixo que incorpora o método descrito na link . Eu não sei como você pretende usar isso, então o FormatCurrentCellPrice sub está lá apenas como um proxy para o seu código que apontará para a célula que você deseja formatar.

O FormatPrice sub determina a localização e a duração do texto que você deseja negrito. Assume o exemplo que você forneceu onde o texto é prefixado com '@' e dividido por espaços. Também supõe que você passe apenas uma célula.

Por fim, o sub MakeBold é roubado da outra resposta para realmente definir o formato dos caracteres. Como você deseja apenas negrito neste texto, eu removi todas as outras formatações da outra resposta.

Sub FormatCurrentCellPrice()
    FormatPrice Selection
End Sub

Sub FormatPrice(c As Range)
    Dim StartPos As Integer
    Dim EndPos As Integer

    StartPos = InStr(c.Value, "@") + 2
    EndPos = InStr(StartPos, c.Value, " ")
    EndPos = InStr(EndPos + 1, c.Value, " ")
    MakeBold StartPos, EndPos - StartPos
End Sub

Sub MakeBold(StartPos As Integer, charCount As Integer)
    With ActiveCell.Characters(Start:=StartPos, Length:=charCount).Font
        .FontStyle = "Bold"
    End With
End Sub
    
por 24.06.2016 / 20:00
0

Você não pode formatar caracteres específicos do texto da sua célula se o texto for retornado por uma fórmula. Você pode, no entanto, usar a função Evaluate do VBA para definir o texto e, em seguida, acessar a coleção Range.Characters da célula de destino para definir caracteres específicos em negrito.

    
por 24.06.2016 / 15:10
0

Sem o VBA, você pode usar Referências absolutas para M9 e M42 da seguinte maneira:
="InterContinental Vienna @" & $ M $ 9 & "&; & $ M < 42 &" p / quarto p / noite "
Formate a célula All Bold

    
por 24.06.2016 / 08:41