Ich versuche, zur Laufzeit einige bedingte Formatierungen (huzzah) für ein Add-in (Doppelhuzzah) zu erstellen, und habe festgestellt, dass einige Funktionen offensichtlich nicht wie in einem normalen Arbeitsblatt verwendet werden können. (Ich erhalte nur einen ungültigen Prozeduraufruffehler 5, wenn ich versuche, die CF zu erstellen, die auf eine VBA-Funktion verweist, die ich in einer Zelle aufrufen könnte, obwohl sie im Add-In und nicht in der Arbeitsmappe ist. in Funktion.) Die klarste Bestätigung, die ich dafür gefunden habe, ist hier , aber es erklärt nicht wirklich was das Problem ist; das ist der esoterische Teil, würde gerne mehr darüber hören, was ich damit erwarten kann.
Der Teil "Gummi trifft Straße" ist: Kann ich VBA vollständig vermeiden und eine Reihe von Excel-only, eingebauten Funktionen verwenden, um zu überprüfen, ob eine bestimmte Zelle eine Konstante enthält (dh a Wert, der von einem Benutzer eingegeben wurde), eine Formel (zB irgendeine Art von Berechnung, logische Operation usw. - beginnt ziemlich oft mit an =) oder eine Verknüpfung (dh eine Referenz auf eine Zelle in einem anderen Arbeitsblatt oder einer anderen Arbeitsmappe)? Ich weiß, Excel hat diese Entschlossenheit zur Hand; Beachte die Verwendung und Geschwindigkeit von GoTo / Special. Wie kann ich trotzdem herausfinden?
Vielen Dank im Voraus für Ihre Hilfe.
Für Office-Versionen ab 2013 ist die ISFORMULA ¹ Funktion ist verfügbar. Kombinieren Sie dies mit der Funktion NICHT , AND Funktion und entweder COUNTBLANK , ISBLANK oder LEN Funktion kann eine Formel erzeugen, um festzustellen, ob eine Zelle eine Konstante enthält.
Die Standardformeln in E2: F2 sind
%Vor%Wenn weitere Informationen über die Art des Zellenwerts erforderlich sind, TYPE-Funktion kann verwendet werden, um festzustellen, ob der Zelleninhalt eine Zahl, ein Text, ein Boolescher Fehler, ein Fehler oder ein Array ist.
Bei gemeinsamer Verwendung der nativen Arbeitsblattfunktionen können die Ergebnisse aus dem Bereich von VBA reproduziert werden. SpecialCells-Methode und ihre xlCellTypeConstants oder xlCellTypeFormulas xlCellType Aufzählung.
¹ Die Funktion ISFORMULA wurde mit Excel 2013 eingeführt. Es ist in früheren Versionen nicht verfügbar.
Ich glaube nicht, dass Sie VBA vollständig vermeiden können, aber Sie können eine einfache UDF erstellen und in Excel verwenden
ZB
%Vor%und
%Vor%= IsFormula (A1) gibt TRUE zurück, wenn eine Formel in A1 und FALSE ansonsten vorhanden ist = IsLink (A1) gibt TRUE zurück, wenn in A1 eine Formel mit '!' sonst FALSCH
Sie könnten diese kombinieren und eine String-Ausgabe "Formel", "Link", "Wert"
erstellenNicht sicher, ob dies das ist, was Sie wollen, aber es scheint zu tun, was Sie fragen, zumindest etwas davon.
Es ist die Methode range.specialcells
.
Es gibt einen Bereich zurück, der nur Konstanten oder nur Formeln usw. enthält.
Ein Beispiel für die Verwendung dieses Codes ist unten gezeigt:
%Vor%Sie wählen einen Bereich aus und führen dann dieses Makro aus und es gibt die Adresse der Zellen zurück, die die Anforderungen erfüllen.
Das erste x sucht nach Zellen, die nur Zahlen enthalten. Das zweite x sucht nach Zellen, die irgendwelche Konstanten enthalten
Der Bereich war in diesem Fall eine Auswahl, aber Sie können festlegen, was Sie wollen, d. h. Bereich ("a1: b5"), usw.
Ich ging zurück zum Arbeitsblatt und verwendete die spezielle Methode goto.
Anscheinend wird auch die Methode range.special verwendet.
Ich habe die Record-Makro-Option verwendet, und das habe ich bekommen.
%Vor%Die spezielle Funktion goto auf dem Arbeitsblatt verwendet die spezielle Zellenmethode für einige Funktionen.
Es benutzt auch andere. In den letzten 5 Codezeilen habe ich das Arbeitsblatt geändert und gebeten, zu Objekten zu gehen.
Es geht ihnen nicht wirklich. Es wählt sie einfach aus.
Arbeitsblatt CP enthielt Objekte und verwendete den Code in den letzten 3 Zeilen, um alle Objekte auf dem Arbeitsblatt auszuwählen.
Am besten ist es, wenn Sie den Code hinter goto special sehen, indem Sie ein Makro aufzeichnen und dann die Funktion goto / special im Arbeitsblatt verwenden.
Wenn Sie fertig sind, beenden Sie die Aufnahme und zeigen Sie das aufgenommene Makro an.
Ich kenne keine anderen Funktionen, um nach Art der Zelle zu wählen, aber ich bin nur ein Neuling, also könnte es sehr leicht dort sein und von mir nicht bekannt sein.
Tags und Links excel excel-vba excel-addins