Excel-VBA - Interpret "N/A" Werte
Ich bin durchqueren ein Tabellenblatt enthält eine Spalte mit Preisen in form von double
Arten. Ich bin versucht, suchen Sie einen fehlenden Wert auf der Tabelle als "n/a"
, aber es wird nicht lassen Sie mich interpretieren dies als eine string
geben.
Zelle mit "n/a"
scheint zu sein, ein integer
Typ; wie kann ich das Lesen?
Wenn Sie stoßen auf einen Anruf mit "n/a" was genau möchten Sie tun? Nicht sicher, ob ich verstehe, was du meinst mit 'wie kann ich Lesen Sie diese? Oder sind Sie einfach nur versuchen, um zu überprüfen, wenn die Zelle enthält einen fehlenden Wert oder nicht?
InformationsquelleAutor Tom | 2011-01-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer Zelle mit #N/A abgerufen wird von VBA als eine Variante enthält einen Fehler-code
Im Allgemeinen ist es normalerweise am besten weisen Sie Excel-Zellen in den Varianten, weil eine Zelle enthalten kann, eine Zahl(double), logical, string oder Fehler, und Sie können nicht im Voraus sagen, was die Zelle wil enthalten.
InformationsquelleAutor Charles Williams
Wenn alles, was Sie tun möchten, ist überprüfen Sie die Fehler-Wert dann:
Application.WorksheetFunction.IsNA(rngToCheck.Value)
wo
rngToCheck
ist die Zelle, die Sie wollen zu prüfen, die#N/A
Fehler Wert(Es gibt eine Liste von Arbeitsblatt-Funktionen, die aufgerufen werden kann von Excel-VBA -hier)
Könnte man auch untersuchen
rngToCheck.Text
als dieser wird mit der Zeichenfolge "#N/A"Wenn Sie stattdessen möchten, Lesen Sie die Formel in der Zelle generiert, die
#N/A
dannrngToCheck.Formula
tun würde,rngToCheck.Text
war die Lösung für mein Beispiel zu diesem Problem.InformationsquelleAutor barrowc
Bereiten Sie die Tabelle, die Sie prüfen möchten, wie unten beschrieben, und bewerten Sie die speziellen Zellen, die IST Funktionen, es ist leicht zu überprüfen, Sie für
True
oderFalse
in VBA. Alternativ, Sie können schreiben Sie Ihre eigenen VBA-Funktion, wie unten gezeigt.Gibt es Excel-Funktionen die Zellen für spezielle Werte, zum Beispiel:
(angenommen, dass C1 ist die Zelle, um zu überprüfen). Dies wird zurück
True
wenn die Zelle#N/A
, sonstFalse
.Wenn Sie wollen, um zu zeigen, ob ein Bereich von Zellen (sagen Sie "
C1:C17
") ist jede Zelle mit#N/A
oder nicht, es sieht vielleicht sinnvoll zu nutzen:Leider ist das nicht der Fall, es wird nicht funktionieren, wie erwartet. Sie können nur bewerten, eine einzelne Zelle.
Allerdings können Sie es tun indirekt mit:
vorausgesetzt, dass jede der Zellen
E1
durchE17
enthält dieISNA
Formeln für jede Zelle zu überprüfen:Können Sie die Spalte ausblenden
E
indem Sie mit der rechten Maustaste auf die Spalte und wählen Verstecken in der Excel-Kontextmenü, so dass der Benutzer Ihrer Excel-Tabelle können nicht sehen, diese Spalte. Sie kann immer noch zugegriffen werden, und ausgewertet werden, selbst wenn Sie ausgeblendet sind.In VBA können Sie ein range-Objekt als
RANGE
parameter und bewerten die Werte einzeln mit einer FOR-Schleife:Diese Funktion verwendet die IsNA () - Funktion intern. Sie muß sich in einem Modul, und kann dann verwendet werden, innerhalb einer Tabellenkalkulation wie:
Gibt es
True
, wenn jede Zelle ist#N/A
, sonstFalse
. Speichern Sie die Arbeitsmappe als makro-Arbeitsmappe (EndungXLSM
), und sicherstellen, dass die Makros sind nicht deaktiviert.Excel bietet mehr Funktionen wie die oben genannten:
Beispielsweise
ISERR()
Prüfungen für alle Zell-Fehler außer#N/A
und ist nützlich zum erkennen von Rechenfehlern.Alle diese beschriebenen Funktionen sind in der eingebauten Hilfe von Excel (drücken Sie F1 und geben Sie dann "Funktionen" als Suchbegriff für eine Erklärung). Einige von Ihnen kann verwendet werden innerhalb von VBA, einige können nur verwendet werden, als eine Zelle-makro-Funktion.
InformationsquelleAutor Matt