| | | 3D-Druck: 7 Gründe für den Einsatz in der Medizin, ein Fachartikel
|
Autor
|
Thema: Excel-Funktion per VBA mit Hochkomma (8548 mal gelesen)
|
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur
Beiträge: 4586 Registriert: 21.07.2005 Creo 10 Genius Tools 10.0 Windchill 12.0.2.0
|
erstellt am: 24. Jul. 2008 15:52 <-- editieren / zitieren --> Unities abgeben:
Hallo Ihr Spezialisten. Ich möchte per VBA eine Formel in eine Spalte einer Exceltabelle schreiben, bekomme aber die Abfrage Inhalt<>"" nicht hin: Im nachfolgenden Code ist es die Zuweisung Cells(ii, 49).Formula = aaa auch als Cells(ii, 49).Value = aaa die nicht funktioniert. Code: Function rang() Dim ii, zz As Integer Dim aaa As String ii = 1 zz = 0 Do ii = ii + 1 bew = Cells(ii, 1).Value zz = zz + 1 Loop Until bew = "" '############ Ziel '############ =WENN(AQ2<>"";RANG(AU2;$AU$2:$AU$355;1);"") For ii = 2 To zz aaa = "=WENN(AQ" & ii & "<>" & Chr(34) & Chr(34) & ";RANG(AU" & ii & ";$AU$2:$AU$" & zz & ";1);" & Chr(34) & Chr(34) & ")" Cells(ii, 49).Formula = aaa Next ii End Function Danke für die Bemühungen. ------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
okl Mitglied Wirtsch-Ing (Maschbau)
Beiträge: 157 Registriert: 21.04.2006 3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1300, Delmia V5R16 SP1, Win XP Prof SP2, Office 2003, VS 2005, VB 6
|
erstellt am: 24. Jul. 2008 15:54 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
Moin Wyndorps, Du brauchst, uzm Funktionen per VBA in eine Zelle zu schreiben, die englischen Bezeichnungen der Funktionen. Also: WENN(; wird zu IF(; Dann sollte es eigentlich klappen. Gruß, Ole Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur
Beiträge: 4586 Registriert: 21.07.2005
|
erstellt am: 24. Jul. 2008 16:12 <-- editieren / zitieren --> Unities abgeben:
Hallo Ole, danke für den Tip, aber das ist es leider nicht. Es muss irgendwie mit der Art zu tun haben, wie ich versuche die als String zusammengebastelte Formel in die Zelle zu übertragen.
------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
okl Mitglied Wirtsch-Ing (Maschbau)
Beiträge: 157 Registriert: 21.04.2006 3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1300, Delmia V5R16 SP1, Win XP Prof SP2, Office 2003, VS 2005, VB 6
|
erstellt am: 24. Jul. 2008 16:28 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
Hab mal den String wirkllich in kleine Abschnitte unterteilt. Der Finzt bei mir sehr gut. Code: Dim strFormel As String strFormel = "=IF(" strFormel = strFormel & "AQ" strFormel = strFormel & ii strFormel = strFormel & "<>""""" strFormel = strFormel & "," strFormel = strFormel & "RANK(" strFormel = strFormel & "AU" strFormel = strFormel & ii strFormel = strFormel & "," strFormel = strFormel & "$AU$2:$AU$" strFormel = strFormel & "," [EDIT: die Zeile muss raus!!! Bin zu d** zum kopieren...] strFormel = strFormel & zz strFormel = strFormel & "," strFormel = strFormel & 1 strFormel = strFormel & ")" strFormel = strFormel & """" strFormel = strFormel & ")"
Gruß [Diese Nachricht wurde von okl am 24. Jul. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 24. Jul. 2008 16:33 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
Hi-Ho, wahrscheinlich stolperst Du über die Anführungsstriche, die müssen im VBA geschachtelt werden, weil er die sonst nicht richtig interpretiert. und evtl. über Formula LocalMal ein Beispiel, ich habe Deins jetzt nicht getestet:
Code: Sub test() Dim strFormel$strFormel = "=Wenn(A1<>0;""1"";""0"")" Sheets(1).Cells(1, 2).FormulaLocal = strFormel End Sub
Versuch mal, ob Dir das schon hilft, wenn nicht meld Dich noch mal. ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info Excel -Suche RuA-Suche FAQ-ACAD Hilfe zu CAD.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
okl Mitglied Wirtsch-Ing (Maschbau)
Beiträge: 157 Registriert: 21.04.2006 3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1300, Delmia V5R16 SP1, Win XP Prof SP2, Office 2003, VS 2005, VB 6
|
erstellt am: 24. Jul. 2008 16:33 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
Übrigens: Code: Dim ii, zz As Integer
definiert ii asls Variant und nur zz als Integer. Das kann mancvhmal zu Problemen führen. Code: Dim ii As Integer, zz As Integer
schreibt es richtig in eine Zeile. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
okl Mitglied Wirtsch-Ing (Maschbau)
Beiträge: 157 Registriert: 21.04.2006 3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1300, Delmia V5R16 SP1, Win XP Prof SP2, Office 2003, VS 2005, VB 6
|
erstellt am: 24. Jul. 2008 16:35 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2013 ADT 2005 bis 2013 Arcibem System: Windows NT, 2000, XP Internet-Startseite: http://www.archi.de
|
erstellt am: 24. Jul. 2008 16:37 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
|
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur
Beiträge: 4586 Registriert: 21.07.2005
|
erstellt am: 24. Jul. 2008 16:42 <-- editieren / zitieren --> Unities abgeben:
Das "FormulaLocal" war's. Ihr seid super! Dank Ü well! ------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 24. Jul. 2008 17:40 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
IMHO deutsche Begriffe und in Formeln Semikolon durch Komma austauschen. Kurze Makroaufzeichnung der Zelle hilft wie XL die Formel in den Code schreibt;-) aaa = "=IF(AQ" & ii & "<>" & Chr(34) & Chr(34) & ",RANK(AU" & ii & ",$AU$2:$AU$" & zz & ",1)," & Chr(34) & Chr(34) & ")" wie schon wronzky & okl bemerkten. @Rübe, FormulaLocal kannte ich auch noch nicht Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|