2013-04-25 15 views
7

Ich erzeuge XML aus einer Liste von Text in einem Arbeitsblatt, aber ich kann nicht herausfinden, wie Sie überprüfen, ob die aktuelle Zelle ein fettes Wort enthält. Was ich tun muss, ist, überprüfen Sie jede Zelle in Spalte A, lesen Sie den Text in eine Zeichenfolge, wenn ich fett drücken Worte fügen Sie die Tags um es.Vba überprüfen, ob teilweise fett in Zelle

Ich weiß, dass Sie einen Zelleninhalt Zeichen für Zeichen aber nicht seine Formatierung lesen können.

Jede Hilfe würde sehr geschätzt werden!

Antwort

8

Hier ist ein Weg, dass man, wenn die Zelle

  1. Mixed Zeichen hat verwenden können, um zu überprüfen, die fett sind. In diesem Fall wird NULL zurückgegeben
  2. Alle Zeichen sind fett. In diesem Fall wird TRUE
  3. zurückgegeben. Keines der Zeichen ist fett. In diesem Fall wird es zurückkehren FALSE

Beispiel

enter image description here

Sub Sample() 
    Debug.Print Range("A1").Font.Bold 
    Debug.Print Range("A2").Font.Bold 
    Debug.Print Range("A3").Font.Bold 
End Sub 

enter image description here

Um zu überprüfen, ob eine Zelle jede fett Charakter hat diese Funktion auch nutzen können (Entweder von VBA oder Arbeitsblatt)

'~~> This is an additional function which will return... 
'~~> TRUE if Cell has mixed/all chars as bold 
'~~> FALSE if cell doesn't have any character in bold. 
'~~> This can also be used as a worksheet function. 
Function FindBoldCharacters(ByVal aCell As Range) As Boolean 
    FindBoldCharacters = IsNull(aCell.Font.Bold) 
    If Not FindBoldCharacters Then FindBoldCharacters = aCell.Font.Bold 
End Function 

Screenshot

enter image description here enter image description here

Und Sie .Characters().Font.FontStyle wenn jedes Zeichen fett zu überprüfen, verwenden können, ist oder nicht. Verwenden Sie den obigen Bereich A1 Beispiel.

Sub Sample() 
    For i = 1 To Len(Range("A1").Value) 
     Debug.Print Range("A1").Characters(i, 1).Font.FontStyle 
    Next i 
End Sub 

Screeenshot

enter image description here

Modified-Code

Sub Sample() 
    For i = 1 To Len(Range("A1").Value) 
     If Range("A1").Characters(i, 1).Font.FontStyle = "Bold" Then 
      Debug.Print "The " & i & " character is in bold." 
     End If 
    Next i 
End Sub 

Screenshot

enter image description here

+0

Sid, ich bekomme deinen 'Character' Code, aber ich weiß nicht was' FinBoldCharacters' macht oder wie heißt es? – brettdj

Verwandte Themen