2013-04-25 22 views
7

Generuję XML z listy tekstu w arkuszu, ale nie mogę dowiedzieć się, jak sprawdzić, czy bieżąca komórka zawiera pogrubioną czcionkę. Muszę sprawdzić każdą komórkę w kolumnie A, przeczytać tekst w łańcuchu, jeśli kliknę pogrubioną czcionką, dodaj znaczniki .Vba sprawdź, czy częściowe pogrubienie w komórce

Wiem, że można odczytać zawartość zawartości komórki według znaków, ale nie można jej formatować.

Każda pomoc będzie bardzo ceniona!

Odpowiedz

8

Oto sposób, który można użyć, aby sprawdzić, czy komórka ma

  1. Mixed znaki, które są pogrubione. W takim przypadku zwróci NULL
  2. Wszystkie znaki są pogrubione. W takim przypadku zwróci on TRUE
  3. Żaden z tych znaków nie jest pogrubiony. W tym przypadku będzie to powrót FALSE

Przykład

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

Aby sprawdzić, czy komórka ma jakieś odważne charakter można użyć tej funkcji, jak również (Albo z VBA, albo z arkusza roboczego)

'~~> 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 

Zrzut

enter image description here enter image description here

i można korzystać .Characters().Font.FontStyle aby sprawdzić, czy każda postać jest pogrubiony, czy nie. Użyj powyższego przykładu Zakresu A1.

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

zmodyfikowanego kodu

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 

ekranu

enter image description here

+0

Sid, dostaję twój kod "Character", ale jestem niejasny co robi 'FinBoldCharacters' lub jak się go nazywa? – brettdj

Powiązane problemy