Feststellen, ob eine Zelle fett ist (Microsoft Excel)
Ken fragt sich, ob es eine Arbeitsblattfunktion gibt, die angibt, ob der Inhalt einer Zelle fett ist. Er kann andere Informationsfunktionen wie ISBLANK finden, aber keine, die anzeigt, ob die Zelle fett ist.
In Excel ist keine ISBOLD-Funktion integriert. Es gibt eine sehr arkane Möglichkeit, dies zu tun, ohne auf ein Makro zurückzugreifen, aber es funktioniert nur mit einigen Versionen von Excel. Anscheinend funktioniert dieser Ansatz beispielsweise nicht mit Office 365, da Microsoft anscheinend die Unterstützung dafür endgültig entfernt hat. Diese alte Excel 4-Funktion namens GET.CELL funktioniert mit einigen älteren Excel-Versionen. So würden Sie es in einer Formel verwenden:
=IF(GET.CELL(20,A1), "Bold", "Not Bold")
Die Funktion GET.CELL gibt True zurück, wenn mindestens das erste Zeichen in der Zelle fett gedruckt ist.
Ein besserer Ansatz wäre, eine benutzerdefinierte Funktion in VBA zu erstellen, die von Ihrem Arbeitsblatt aus aufgerufen werden kann. Hier ist eine einfache Version einer solchen UDF:
Function CheckBold(cell As Range) As Boolean Application.Volatile CheckBold = cell.Font.Bold End Function
Um es in Ihrem Arbeitsblatt zu verwenden, gehen Sie folgendermaßen vor:
=IF(CheckBold(A1), "Bold", "Not Bold")
Die CheckBold-Funktion wird nur aktualisiert, wenn Ihr Arbeitsblatt neu berechnet wird, nicht, wenn Sie es einfach fett formatieren oder aus Zelle A1 entfernen.
Dieser Ansatz kann in den meisten Fällen funktionieren, es ist jedoch zu verstehen, dass die Bold-Eigenschaft tatsächlich drei mögliche Einstellungen haben kann: True, False und Null. Die Eigenschaft wird auf False gesetzt, wenn keines der Zeichen in der Zelle fett gedruckt ist. Es wird auf True gesetzt, wenn alle fett gedruckt sind. Schließlich wird es auf Null gesetzt, wenn nur einige der Zeichen in der Zelle fett sind. Wenn Sie glauben, dass Sie in diese Situation geraten könnten, müssen Sie die CheckBold-Funktion ändern:
Function CheckBold(cell As Range) As Integer Dim iBold As Integer Application.Volatile iBold = 0 If IsNull(cell.Font.Bold) Then iBold = 2 Else If cell.Font.Bold Then iBold = 1 End If CheckBold = iBold End Function
Beachten Sie, dass die Funktion jetzt einen Wert von 0 bis 2 zurückgibt. Wenn sie 0 zurückgibt, ist in der Zelle kein Fettdruck vorhanden. Wenn 1 zurückgegeben wird, ist die gesamte Zelle fett gedruckt. Wenn es 2 zurückgibt, ist die Zelle teilweise fett gedruckt.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (13733) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.