Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Formula erzeugt im Excel @ Zeichen

VBA Formula erzeugt im Excel @ Zeichen
03.03.2021 12:02:17
bea
Hallo
Ich verwende VBA bereits länger und erstelle Tools für unsere Mitarbeter. Nun bin ich auf folgendes Problem gestossen: Office 365 ProPlus). Nun Hoffe ich auf eure Unterstützung.
Wenn ich eine Formel per VBA-SUB ins Excel schreiben lasse, wird ein zusätzliches @ Zeichen in der Formel eingetragen. Dadurch ergibt die Formel ein Fehler. (#WERT! / #Name!))
Beipiel: VBA: Range("B16").Formula = "=Summe(B16:B34)"
Ergebnis im Excel: =@Summe(B16:B34)
Durch doppelklicken kann ich nach der Fehlermeldung das ältere Versionen dies nicht unterstüzten, die Formel anpassen. Dadurch ist jedoch eine automatische Weiterverarbeitung kompliziert.
Damit ich automatisch weiterverarbeiten kann, habe ich gebastelt und diese Formel angeapasst:
VBA: Range("B16").Formula = "=Sum(B16:B34)"
Ergebnis im Excel: =Summe(B16:B34)
Bei weiteren Formeeln passiert dies auch. Leider habe ich nicht immer den Ausweg oben. ( links, rechts etc.)
Gibt es eine Möglichkeist dieses @ Zeichen zu verhindern?
Ich wäre dankbar für einen Tipp.
Herzlichen Dank und Grüsse bea

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Formula erzeugt im Excel @ Zeichen
03.03.2021 12:24:54
Daniel
Hi
Bei .Formula musst du die Formel immer in englischer Notation angeben (engl. Funktionsnamen, Parametertrennzeichen Komma, Dezimalzeichen Punkt).
Willst du die deutschen Schreibweisen verwenden, musst du die Formel mit .FormulaLocal der Zelle zuweisen
Allerdings funktioniert dann den Makro nur mit deutschem Excel, während ersteres in allen Länderversionen läuft.
Gruß Daniel

Anzeige
AW: VBA Formula erzeugt im Excel @ Zeichen
03.03.2021 12:27:19
JoWE
Hallo Bea,
versuch mal:
Dim testBer as range
TestBer=sheets(1).Range("B16:B34") 'Sheets(1) Dein Tabellenblatt anpassen
Application.WorksheetFunction.SUM(testBer)
Gruß
Jochen

AW: VBA Formula erzeugt im Excel @ Zeichen
03.03.2021 13:18:46
bea
Hallo an alle Tipgeber :)
Herzlichen Dank für die raschen Rückmeldungen. Es hat mir für die übrigen Formeln auch weitergeholfen.
Für Summe sowie Links und Rechts funktioniert "FormulaLocal" perfekt.
Grüsse bea
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Umgang mit dem @ Zeichen in Excel-Formeln


Schritt-für-Schritt-Anleitung

Um das unerwünschte @ Zeichen in Excel-Formeln zu vermeiden, kannst du folgende Schritte befolgen:

  1. Formel in englischer Notation verwenden: Stelle sicher, dass du die Formel mit englischen Funktionsnamen und dem richtigen Dezimal- sowie Trennzeichen angibst. Beispiel:

    Range("B16").Formula = "=SUM(B16:B34)"
  2. Verwendung von .FormulaLocal: Wenn du die deutsche Schreibweise verwenden möchtest, setze die Formel so:

    Range("B16").FormulaLocal = "=SUMME(B16:B34)"
  3. Überprüfen der Excel-Version: Achte darauf, dass die verwendete Excel-Version (z. B. Office 365 ProPlus) die VBA-Funktionalitäten unterstützt.


Häufige Fehler und Lösungen

  • Problem: Ungewolltes @ Zeichen in der Formel.

    • Lösung: Verwende die .FormulaLocal Methode, um die Formel in der Sprache deiner Excel-Version zu definieren.
  • Problem: Fehler #WERT! oder #NAME!.

    • Lösung: Überprüfe die Schreibweise der Formel und stelle sicher, dass sie korrekt formatiert ist.
  • Problem: Verhalten bei älteren Excel-Versionen.

    • Lösung: Halte dich an die englische Notation, um Komplikationen zu vermeiden.

Alternative Methoden

Eine alternative Methode zur Berechnung in VBA, ohne die Formel direkt in die Zelle zu schreiben:

Dim testBer As Range
Set testBer = Sheets(1).Range("B16:B34") 'Passe das Blatt an
Application.WorksheetFunction.SUM(testBer)

Diese Methode verwendet die WorksheetFunction von Excel, um die Summenberechnung durchzuführen, ohne die Formel direkt in die Zellen zu schreiben.


Praktische Beispiele

  1. Summe mit VBA:

    Range("B16").Formula = "=SUM(B16:B34)"
  2. Summe mit deutscher Notation:

    Range("B16").FormulaLocal = "=SUMME(B16:B34)"

Diese Beispiele zeigen, wie du in VBA Formeln setzen kannst, ohne das @ Zeichen in Excel-Formeln zu erhalten.


Tipps für Profis

  • Wenn du regelmäßig mit VBA arbeitest, gewöhne dir an, die .Formula und .FormulaLocal Methoden je nach Bedarf zu verwenden, um die Kompatibilität zu gewährleisten.
  • Nutze die Option Explicit-Anweisung am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind und Fehler zu vermeiden.
  • Experimentiere mit der Range.FormulaR1C1, wenn du flexibel mit Zellreferenzen arbeiten möchtest.

FAQ: Häufige Fragen

1. Was bedeutet das @ Zeichen in Excel-Formeln?
Das @ Zeichen in Excel-Formeln wird verwendet, um auf den aktuellen Zeilenkontext zu verweisen, insbesondere in Tabellen. Es kann jedoch zu Verwirrung führen, wenn es unerwartet in Formeln auftaucht.

2. Wie kann ich das @ Zeichen verhindern?
Verwende die .FormulaLocal Methode, um die Formel in der Sprache deiner Excel-Version zu setzen, oder stelle sicher, dass du die Formel in englischer Notation angibst.

3. Was bedeutet =@ in Excel?
Die =@ Syntax weist Excel an, den Wert in der aktuellen Zeile zu verwenden, was in bestimmten Kontexten nützlich sein kann, aber auch Probleme verursachen kann, wenn die Formel nicht korrekt ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige