VisualBasic VBA in Excel Array ausgeben

Cre@tsheR

Ensign
Registriert
Juni 2010
Beiträge
170
Hallo @ll,
Brauche mal Hilfe von jemandem der sich mit VBA in Excel auskennt.
Habe ich auf Wikibooks schon totgesucht (google ist nicht frei wo ich bin), aber finde nicht das was ich brauche.
Ich möchte einen bestimmten wert eines Arrays ausgeben. Also nur einen einzigen.
Sprich sage mir Wert aus Array an Position x.
Wie kann ich das anstellen ???

Danke schonmal für eure Hilfe
 
Meinst du
Debug.print meinArray(position)
???
 
Funktioniert nicht, er sagt: "Erwartet: Ausdruck" !?

Edit: okay das kam weil ich das hinter MsgBox geschrieben hab weil ich testen wollte was er ausgibt,
sprich ich kann mir nirgends ausgeben lassen was bei Debug.Print rauskommt !?
 
Zuletzt bearbeitet:
Debug.Print wird im Direktfenster ausgegeben! Kannst du über Ansicht --> Direktfenster öffnen

Kannst du mal den Code hier posten?
 
Code:
Sub CommandButton1_Click()
Range("C2").Value = Range("C2").Value + 1
End Sub
Sub CommandButton2_Click()
Range("C3").Value = Range("C3").Value + 1
End Sub
Sub CommandButton3_Click()
Range("C4").Value = Range("C4").Value + 1
End Sub
Sub DateButton1_Click()
Dim a As Integer
Dim b As Integer
Dim f As Variant

f = Array(c, D, E, f)

Debug.Print f(3)

a = Format((Date), "d")

Rem -If a > 2 Then
Rem -MsgBox "Heute ist der " & Format((Date), "d")
Rem -End If
End Sub

glaube nicht, dass das weiterhilft, da wir im moment noch nichts der eigentlich versuchten weise was gemacht werden soll eingebaut haben, da wir den befehl für das auslesen einer bestimmten Array-Position nicht haben.

In diesem Direktfenster steht aber auch nichts und ich frage mich warum er mir das erste c im Array automatisch klein macht !?

Es soll im endeffekt, anhand des tages vom Monat die entsprechende Spalte in der Tabelle ausgewählt werden.
Die Datierung fängt bei der Spalte C an und soll dann je nach Tag des Monats eben weitergehen, sprich heute ist der 8. also soll im Array die 8. Position ausgegeben werden welche dann halt J wäre in dem Falle.
 
Zuletzt bearbeitet:
Also wenn ich dich richtig verstehe dann stehen im Array die "Spaltenbuchstaben"?

Aber so wie du das machst hast die Variablen C-F reingeschrieben...
probiers mal mit f = Array("C", "D", "E", "F")
 
ja das hast du richtig verstanden =)
stimmt so ist es ~.~
naja aber den befehl um eine einzige position davon auszugeben brauche ich immernoch ...
 
msgbox f(0) gibt dir "C" aus...

Und in deinem Fall sollte

f = Array("C", "D", "E", "F", "G", "H", "I", "J", "K")

MsgBox f(Format((Date), "d") - 1)

funktionieren....
 
Zuletzt bearbeitet:
Aaaaaaaaaaah so einfach und ich mach hier son Aufriss -.-
Danke =D
Man 6 Jahre ohne VBA und man weiß nichts mehr, Dankeeee ^^
 
Und nicht vergessen Array starten mit dem Index 0 -> f(0) für erste Position

Wenn du sie von 1 starten lassen willst msst vorher ein "Option Base 1" bringen...
 
Jou das ist klar. =)
Nun bleibt nurnoch die Frage wie ich die variable a, an die das f(x) übergeben wird, in den Befehl:
Code:
Range("September!C4").Value = Range("September!C4").Value + 1
bekomme (September! weil es über mehrere Tabellen geht und die Tabelle wo es hin soll September heißt) !?

Wenn ich
Code:
Range("September!"a"4").Value = Range("September!"a"4").Value + 1

versuche jault er rum, aber ich wüsste nicht wie sonst !?
 
Du darfst die &-Zeichen nicht vergessen: Range("September!" & a & "4").Value

Aber ich würd mal überlegen ob du nicht lieber mit "WorkSheets" und "Cells" arbeiten willst?

Worksheets("September").cells(4, Format((Date), "d") + 2)

Dann brauchst das ganze Array zeug nicht...

Sub test1()

f = Array("C", "D", "E", "F", "G", "H", "I", "J")

a = f(Format((Date), "d") - 1)

MsgBox Range("September!" & a & "4")

End Sub


Sub test2()

MsgBox Worksheets("September").Cells(4, Format((Date), "d") + 2)

End Sub

Beide Progs machen das selbe nur test2 ist kürzer und ohne Array
 
Zuletzt bearbeitet:
Perfek, anders lässt es sich nciht sagen =D
ich hab das mit den Worksheets und Cells genommen und es funktioniert genau so wie ich es wollte.
Ich hatte mir anfangs schon das mit dem "Koordinatensystem" überlegt, wusste aber nicht wie es geht und das ist die perfekte Lösung, wärst du weiblich würd ich dich knutschen =P
Danke
 
Zurück
Oben