Wenn Der Fehler Dann Leer
Vielen Dank für einen Blick auf meine Frage. Wissen, dass ich bin neu auf stackoverflow und VBA habe ich ein makro habe ich lange gearbeitet habe. An einer Stelle in das makro habe ich auf " konvertieren "Starten Sie die Tiefe" (L) und "Ende Tiefe (M) von "m" in "ft". Dann habe ich subtrahieren Sie die beiden, um die "Footage" (N). Jedoch, einige der Werte in den Spalten sind ursprünglich leer gelassen. So, nach meinen Umbauten und Subtraktionen, ich bin Links mit "#WERT!", was mir Fehler später im makro. Ursprünglich hatte ich geändert alle Rohlinge auf 0, bevor Sie mit der Umbauten und Subtraktionen. Aber, Nach "Beendigung" der makro erkenne ich die Nullen sind messing mit Darstellung der Daten. Also, ich möchte nur die conversions und Subtraktionen und ändern Sie dann alle "#WERTE!" zurück auf Leerzeichen. Ich fand einige Sachen, aber nichts, dass ich könnte (, die ich kenne) verwenden oder spezifisch für mich:
http://www.ozgrid.com/forum/showthread.php?t=60740 und https://superuser.com/questions/715744/excel-2010-formula-how-do-i-write-this-formula-vba
Hier ist, was ich ändern Rohlinge in 0
Worksheet1.Select
lastrow = Range("A666666").End(xlUp).Row
For Each cell In Range("A1:Q" & lastrow)
If Len(cell.Value) = 0 Then
cell.Value = 0
End If
Next
Hier ist der code, der daraus resultierenden Fehler. Hinweis: Die Daten beginnt mit Leerzeichen und nach der Verwendung dieser Formeln, ich bin da Fehler, weil einige der ursprünglichen Zellen beginnen als null oder Leerzeichen. Auch Diese Linien sind nicht in dieser Reihenfolge aber, Sie sind die Linien verlassen Fehler.
ActiveCell.FormulaR1C1 = "=CONVERT(RC[2],""m"",""ft"")"
Selection.AutoFill Destination:=Range("N2:O2"), Type:=xlFillDefault
Selection.AutoFill Destination:=Range("N2:O" & lastrow)
Range("N1") = "Footage"
Range("N2").Select
ActiveCell.FormulaR1C1 = "=RC[-1]-RC[-2]"
Selection.AutoFill Destination:=Range("N2:N" & lastrow)
Jede Hilfe ist willkommen. Danke Jungs!
- Es wäre wahrscheinlich sehr hilfreich, wenn Sie zeigte den Teil des Codes, dass die Erträge der
#VALUE!
- Fehler führt. Am einfachsten zu beheben, an diesem Punkt, und nicht irgendwo weiter in die makro/Prozedur. - NB: Sie können Ihre quesition, um den zusätzlichen code, jedoch nicht versuchen Sie, legen Sie es in den Kommentaren, wie es einige Leute tun 🙂
- Nun, das ist, was ich versucht habe zu tun, ursprünglich aber von der Zeit erreichte ich das Ende meiner makro-und versucht, es zu benutzen, erkannte ich, dass das hinzufügen von mehr null war geneigt meine Daten. Also, ich brauche, um die Lücken in den Daten.
- nützliche Frage, aber ich habe nach unten gestimmt, weil es zu viele unnötige Worte. im Grunde alles, was ich brauchte ist, um den Titel Lesen (mein problem, dass ich interessiert war) und zu Lesen @AndASM 's Antwort, die viel besser ist, als die Frage selbst, btw
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hängt es ab, wenn die
#VALUE!
erzeugt wird, die aus einer Formel oder VBA-code.Formel
Wenn es generiert sich aus einer Formel, wickeln Sie die Formel in die WENNFEHLER-Funktion. Dies wurde Hinzugefügt, die in Excel 2007 glaube ich. So zum Beispiel, wenn Sie Ihre Formel war:
Dann könnte man
Was sagen, wenn A1-B1 ist ein Fehler, zurückzukehren,"", sonst gibt das Ergebnis von A1-B1.
VBA
Wenn der Wert erzeugt wird, durch VBA-könnten Sie schreiben, eine helper-Funktion, die funktioniert wie WENNFEHLER
Und übergeben Sie dann Ihren Wert, durch, die.
val = IIF(IsError(val),value_if_error,val)
=Cat
in die Zelle verwiesen wird, vonCell
. Es ist eine Art, wie Sie schreiben=Cat
in eine Zelle. Excel dann neu berechnet, die Zelle, und es wird der Wert aktualisiert.Cell.FormulaR1C1 = "=Cat"
ist nicht setzen Sie den Wert selbst in oder berechnen Sie den Wert direkt ein. Hoffentlich, das macht Sinn und hilft.Diese nicht direkt beantworten Ihre Frage, aber es hat fix die Präsentation von Null auf Ihrem Arbeitsblatt. Sie können verwenden Sie folgende Einstellung, um zu zeigen, Nullen als Leerstellen durch VBA:
ActiveWindow.DisplayZeros = False
könnte Es eine überlegung, statt einer Schleife durch alles, was auf der Suche für 0 und wechseln Sie auf Leerzeichen manuell.Tut mir Leid, ich habe nicht opprtunity, um es zu testen aber Recht geben, es zu versuchen.
Quintessenz ist, dass ich einfach enthalten eine zweite Schleife, die läuft
IFERROR
Funktion auf Ihre Daten.