Mit den Excel Formel-Funktionen (ERF, ERFC) in Excel-VBA-code?
Ich versuche, verwenden Sie die error-Funktion und die Kostenlose Fehler-Funktion in meinem Programm. Weder arbeiten. Ich erhalte die Fehlermeldung Compile Error: Sub or Function not defined
. Allerdings, wenn ich in einer Zelle und versuchen, es manuell zu verwenden, die error-Funktion, es funktioniert.
Warum ist das so? Wie kann ich es in meinem eigentlichen code?
Die error-Funktion ist ERF(x)
und die Kostenlose Fehler-Funktion ist ERFC(x)
.
Hier ist ein Beispiel von Dingen, die nicht funktionieren:
Sub SeriouslyWHYIsntThisWorking()
x = 3
Range("A1") = Erf(x)
End Sub
Selbst das funktioniert nicht:
Sub PleaseWork()
Range("A1") = Erfc(1)
End Sub
Aber wenn ich ging in Excel eingegeben und =ERF(3)
oder =ERFC(1)
in eine Zelle, dann funktioniert es.
Ich bin ganz neu hier und wahrscheinlich etwas fehlen, unglaublich einfach. Hilfe wäre sehr geschätzt werden!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden ein Arbeitsblatt Formel in vba, die Sie brauchen, um
Application.WorksheetFunction.
vor.Einige Funktionen haben vba-Entsprechungen, aber (soweit ich weiß) nicht im Fall der
erf
underfc
=FIND(
: während Sie könnte verwendenapplication.worksheet.find(
, es wäre besser, verwenden Sie die vba-FunktionInStr
Haben Sie die Analyse-Funktionen für VBA-add-in installiert/verwiesen? (Schauen Sie für atpvbaen.xls)
Den
ERF
Funktion ist Teil des add-in, und es gibt zwei Versionen davon (eine für den Einsatz in Excel-Funktionen und eines für VBA), und Sie müssen das richtige set-up und auf die verwiesen wird, die von Ihrem Projekt verwendet werden.Add-ins sind standard von MSFT, aber nicht immer standardmäßig eingerichtet. Wenn Sie es verwenden können in Excel normal, dann ist Sie bereits festgelegt haben, mindestens die Excel-version. So verwenden es alle, wie es aussieht, die Sie tun möchten, benötigen Sie das add-in, unabhängig davon, wie Sie das umsetzen/verwenden Sie diese Funktion aus. Bedeutung, wenn Sie möchten teilen Sie diese mit anderen, Sie müssen das add-in installiert/aktiviert.
Miteinander zu verknüpfen, dass diese Antwort mit den anderen zur Verfügung gestellt (die gleichwertig sind, richtig und vollständig), entweder Einstellung der Wert in einer Zelle mit
Range("A1").value = Application.WorksheetFunction.ERF(x)
oder Einstellung einer Zelle die Formel mit
Range("A1").Formula = "=Erfc(" + x + ")"
benötigen die end-Benutzer mithilfe des add-in.
ERF/ERFC
Formeln (auch wenn die Eingabe direkt in der Zelle) wird nicht für Sie arbeiten.Versuchen Sie dies:
Völlig ungetestet, da ich kein Excel auf meinem Linux-Rechner... Aber ich glaube, ich bin immer der Punkt, über -- verwenden müssen Sie die .Formula-Eigenschaft des Range-Objekts.
Gibt es weitere Informationen hier:
http://msdn.microsoft.com/en-us/library/office/gg192736.aspx