Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Array eine Zelle zuweisen

Betrifft: Array eine Zelle zuweisen von: Stefanie
Geschrieben am: 07.10.2014 12:57:35

Hallo!

Ich bin immer noch an den Arrays...

Bei folgendem spuckt er mir einen fehler aus:

For z = 0 To 134
      For zz = 0 To 134                                             
                                              
        arraytxt(z, zz) = Cells(3, lSpalte + 1).Value
        'MsgBox arraytxt
        z = z + 1
        zz = zz + 1
        ...
        Next zz
       Next z  


Kommt immer. Typen unverträglich? Das Array ist aber als Variant deklariert? Oder woran liegt das?

Vielen Dank !!

  

Betrifft: AW: Array eine Zelle zuweisen von: Hajo_Zi
Geschrieben am: 07.10.2014 13:03:56

Du solltest Z und ZZ nicht erhöhen das passiert durch Next.

GrußformelHomepage


  

Betrifft: AW: Array eine Zelle zuweisen von: Stefanie
Geschrieben am: 07.10.2014 13:19:37

Das stimmt! Aber es funktioniert trotzdem nicht. Hab ich vielleicht etwas am array falsch?
Hab es durch arraytxt() as Variant deklariert...

Danke für einen Tipp!


  

Betrifft: AW: Array eine Zelle zuweisen von: Hajo_Zi
Geschrieben am: 07.10.2014 13:21:37

bei mir kommt kein Fehler.

Sub Arrayx()
    Dim lspalte As Long
    Dim Z As Long
    Dim ZZ As Long
    lspalte = 10
    Dim arraytxt(134, 134)
    For Z = 0 To 134
        For ZZ = 0 To 134
            arraytxt(Z, ZZ) = Cells(3, lspalte + 1)
            'MsgBox arraytxt
'            Z = Z + 1
'            ZZ = ZZ + 1
            '...
        Next ZZ
    Next Z
End Sub
Gruß Hajo


  

Betrifft: AW: Array eine Zelle zuweisen von: Stefanie
Geschrieben am: 07.10.2014 13:31:30

Ach Danke dir! war vielleicht der Unterschied arraytxt() zu arraytxt(134,134) :-)


  

Betrifft: AW: Array eine Zelle zuweisen von: Hajo_Zi
Geschrieben am: 07.10.2014 13:40:49

ich benutze Option Explicit und damit definiere ich alle Variablen, falls nicht vorhanden.

Gruß Hajo


  

Betrifft: AW: Array eine Zelle zuweisen von: Stefanie
Geschrieben am: 07.10.2014 14:03:45

Option Explicit? Ok Danke dir! Werd ich mal googeln :-) Du bist echt ne super Hilfe.
Vg Stefanie


  

Betrifft: AW: Array eine Zelle zuweisen von: Daniel
Geschrieben am: 07.10.2014 13:48:26

Hi
mit Dim Arraytext() ist das Array nur "vorbereitet", aber noch nicht vollständig angelegt.

du kannst jetzt zwar dem gesamten Array einen Zellbereich zuweisen (ArrayText = Range(...).Value)

aber noch nicht gezielt auf einzelne Elemente des Arrays zugreifen, weil das Array ja noch gar nicht weiss, wie gross es ist.
Erst wenn du die Grösse des Arrays festgelegt hast, kannst du die einzelelemente ansprechen.

Gruß Daniel


  

Betrifft: AW: Array eine Zelle zuweisen von: Stefanie
Geschrieben am: 07.10.2014 14:04:20

Danke für deine ausführlicher Erläuterung! Jetzt hab ich den Unterschied verstanden. Danke für deine Hilfe!!


  

Betrifft: AW: Array eine Zelle zuweisen von: Daniel
Geschrieben am: 07.10.2014 13:43:18

Hi

der Fehler dürfte nur dann auftregen, wenn die Excelzelle einen Fehlerwert enthält (#NV, #DIV/0, ...)
mit so Fehlerwerten hat Excel so seine Probleme.

probier mal, ob arraytxt(z, zz) = Cells(3, lSpalte + 1).Text
fehlerfrei durchläuft.

Gruß Daniel


  

Betrifft: Was du da machst, scheint ohnehin sinnfrei ... von: Luc:-?
Geschrieben am: 07.10.2014 14:45:53

…zu sein, Stefanie;
den 1.Fehler hat dir ja bereits Hajo, den 2. Daniel mitgeteilt (wobei die Sache mit den FWerten bei Datentyp Variant Quatsch ist). Schließlich wird aber 3. lSpalte nirgendwo in den Zyklen erhöht, so dass in alle Array-Felder stets der gleiche Wert eingetragen wird. War das deine Absicht?
Dein auskommentierter Msgbox-Versuch wäre ebenfalls untauglich, denn VBA ist nicht JavaScript und Msgbox fktioniert auf Arrays bezogen nicht wie Alert.
Wenn es aber darum ginge, einen ganzen ZellBereich in ein Array zu übertragen, könnte man das wesentlich einfacher haben. Dazu findest du auch genug Bspp im Archiv!
Gruß, Luc :-?


  

Betrifft: AW: Was du da machst, scheint ohnehin sinnfrei ... von: Stefanie
Geschrieben am: 07.10.2014 15:59:13

Nein darum geht es nicht... Das wäre ja ziemlich einfach.
Ich kenne mich halt in VBA nicht gut aus...
Hab aber auch schon ne Beispieldatei hochgeladen, falls du dir das anschauen möchtest worum es geht :-)


  

Betrifft: Ich sehe keinen Link; den hast du wohl, ... von: Luc:-?
Geschrieben am: 07.10.2014 19:55:38

…trotz Hinweis, vergessen in deinen BT einzukopieren!
Luc :-?


  

Betrifft: AW: Ich sehe einen Link; den hat sie wohl, ... von: Gerd L
Geschrieben am: 07.10.2014 20:15:48

im anderen Beitrag gesetzt, Luc.
https://www.herber.de/bbs/user/92999.xlsx

Gruß Gerd


  

Betrifft: Aha, aber auf d.hat sie hier auch nicht verwiesen! von: Luc:-?
Geschrieben am: 07.10.2014 22:00:50

Gruß, Luc :-?


  

Betrifft: AW: Aha, aber auf d.hat sie hier auch nicht verwiesen! von: Stefanie
Geschrieben am: 08.10.2014 11:39:57

Sorry!! :-)


  

Betrifft: AW: Ich sehe einen Link; den hat sie wohl, ... von: Stefanie
Geschrieben am: 08.10.2014 11:39:31

Danke Luc.. und sorry ja das hatte ich vergessen in der Eile :-)


  

Betrifft: AW: Ich sehe keinen Link; den hast du wohl, ... von: Stefanie
Geschrieben am: 08.10.2014 11:39:04

https://www.herber.de/bbs/user/92999.xlsx


  

Betrifft: Da du VBA verwenden willst, könntest du ja ... von: Luc:-?
Geschrieben am: 08.10.2014 17:24:38

…auch eine UDF in einer ZellFml verwenden, Stefanie,
bspw so:
Tabelle2!B2[:B3]: {=GLÄTTEN(MxJoin(WENN((Tabelle1!A$4:A$5=Tabelle2!A2)*(Tabelle1!B$4:D$5="X")=0;"";Tabelle1!B$2:D$2);"; "))}
Die UDF MxJoin findest du hier.
Gruß, Luc :-?


  

Betrifft: Für die Z1S1-Bezugsart deiner BspMappe ... von: Luc:-?
Geschrieben am: 08.10.2014 20:28:16

…würde die Fml dann so lauten:
@GLÄTTEN(MxJoin(WENN((Tabelle1!Z4S(-1):Z5S(-1)=Tabelle2!ZS(-1))*(Tabelle1!Z4S:Z5S(2)="X")=0;"";Tabelle1!Z2S:Z2S(2));"; "))
(@ wird bei Eingabe automatisch in = gewandelt und soll hier nur daran erinnern, dass es sich um eine (einzellige) MatrixFml handelt, die bei Eingabe mit [Strg][Umsch][Enter] abgeschlossen wdn muss. In die Folgezellen kann die Fml dann einfach einkopiert wdn.
Luc :-?


  

Betrifft: Eine 'Stefanie' muss hier gar nichts mehr ... von: Luc:-?
Geschrieben am: 13.10.2014 20:10:28

…erfragen, von mir gibt's garantiert keine AW mehr! :-[


 

Beiträge aus den Excel-Beispielen zum Thema "Array eine Zelle zuweisen"