Come modificare il carattere di una formula specifica che fa parte di una cella di Excel?


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

basato sull'esempio sopra, M9 = EUR e M42 = 150

Il risultato che sto cercando è:

InterContinental Vienna @EUR 150p/room p/night

Come posso fare questo usando VBA per ogni riga in una colonna specifica in cui M9 appare nella cella?


È un po 'disordinato, ma il metodo è ben descritto nel secondo frammento al seguente link. stackoverflow.com/questions/1405988/...
Code39

Grazie Code39 per il puntatore ... tuttavia, il nome dell'hotel varierà sempre, quindi il punto iniziale cambierà e anche la lunghezza della stringa da formattare cambierà a seconda dell'importo che potrebbe essere 18 o 1800 .... C'è un modo di iniziare da @ e terminare prima di "p / room p / night"?
Metta ed Emma Eu,

Risposte:


1

Sembra che tu abbia bisogno di un po 'più VBA, quindi ho creato il codice seguente che incorpora il metodo descritto al link . Non so come intendi utilizzarlo, quindi il sub FormatCurrentCellPrice è proprio lì come proxy per il tuo codice che punterà alla cella che desideri formattare.

Il sottotitolo FormatPrice determina la posizione e la lunghezza del testo che vuoi mettere in grassetto. Presuppone l'esempio fornito in cui il testo è preceduto da "@" e diviso per spazi. Presuppone anche che passi in una sola cella.

Infine, il sub MakeBold viene rubato dall'altra risposta per impostare effettivamente il formato per i caratteri. Dato che vuoi solo mettere in grassetto questo testo, ho rimosso tutte le altre formattazioni dall'altra risposta.

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

0

Non puoi formattare caratteri specifici del testo della tua cella se il testo viene restituito da una formula. Tuttavia, è possibile utilizzare la Evaluatefunzione VBA per impostare il testo e quindi accedere alla Range.Charactersraccolta della cella di destinazione per impostare caratteri specifici in grassetto.


0

Senza VBA puoi utilizzare i riferimenti assoluti per M9 e M42 come i seguenti:
= "InterContinental Vienna @" & $ M $ 9 & "" & $ M $ 42 & "p / room p / night"
Formatta la cella All Bold


Ci ho provato ma non ha funzionato ... qualcosa che mi manca qui?
Metta ed Emma Eu,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.