VBA: Wie ändern Sie den Wert einer anderen Zelle über eine Funktion?
Ich bin ein Excel-VBA-Neuling.
So ändern Sie den Wert der angegebenen Zelle über eine Benutzer-definierte Funktion? Was ist falsch mit diesem code:
Function Test(ByVal ACell As Range) As String
ACell.Value = "This text is set by a function"
Test := "Result"
End Function
Mein Wunsch ist ... wenn ich =Test(E6)
in Zelle E1, Excel zeigt den angegebenen text in E6.
InformationsquelleAutor Vantomex | 2010-10-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Excel-VBA wird nicht zulassen, einen Benutzer-definierten Funktion zu ändern, den Wert einer anderen Zelle.
Das einzige, was eine UDF machen darf (mit ein paar kleinen Ausnahmen) ist die Rückgabe von Werten an den Zellen, heißt es.
InformationsquelleAutor Charles Williams
Einen VBA-UDF verwendet werden kann, wie eine array-Funktion, um Ergebnisse zu mehreren benachbarten Zellen.
Geben Sie die Formel in E1 und E2 und drücken Sie Strg-Shift-Enter erstellen einer multi-cell array-Formel. Ihre UDF würde wie folgt Aussehen:
InformationsquelleAutor Charles Williams
Warum nicht einfach eingeben, Sie die Formel in E6 dann ? Das ist die Excel-Logik: setzen Sie Ihre Formel, wo das Ergebnis angezeigt werden.
InformationsquelleAutor Patrick Honorez
JA, natürlich, es ist möglich. Fügen Sie diesen code in Modul1 der VBA-editor:
Das Ergebnis dieser Beispiel-UDF ist wieder in einem anderen, benachbarten Zelle. Die Benutzer-definierte Funktion
Rectangle
berechnet das Rechteck Bereich, basierend auf zwei ParameterA
undB
und gibt das Ergebnis in einer Zelle auf der rechten Seite.Können Sie leicht ändern Sie das Beispiel-Funktion. Der job ist getan, durch geheime undokumentierte VBA-Funktion
Evaluate
. Spaß haben!Dies ist ein link zu der UDF-Beschränkung durch Microsoft. https://support.microsoft.com/en-us/help/170787/description-of-limitations-of-custom-functions-in-excel
InformationsquelleAutor Przemyslaw Remin