Werte in Array schreiben

ltPerly

Mitglied
Moin Leute,

ich stehe grad bissl sehr auf dem Schlauch ... hab ein Problem, von dem ich der festen Überzeugung bin, dass es absoluter Kinderkram ist ;)

Und zwar möchte ich ein paar Werte in ein Array schrieben ... aber wenn's geht nicht per Zugriff auf die Indizes, sondern nach Möglichkeit in einer Zeile.

Ich hab schon bissl was im Internet gefunden, was aber nicht wirklich funktioniert:
Feld = Array("Wert1", "Wert2" ...)
Feld = ("Wert1", "Wert2" ...)
Dim Feld(2) As String = {"Wert1", "Wert2"}
Dim Feld(2) As String = {"Wert1" "Wert2"}

Ich dachte ich wäre mir sicher, dass ich das schonmal gemacht hab ... aber durch meinen kurzen Ausflug in eine andere Programmiersprache, habsch alle möglichen Tricks wieder verlernt :(


Wäre echt supi, wenn mir da mal jemand helfen könnte.

Gruß David.
 

deepthroat

Erfahrenes Mitglied
Hi.

Die Möglichkeit mit den geschweiften Klammern gibt's in Visual Basic .NET.

Aber was funktioniert denn bei
Code:
Feld = Array("1", "2", "3")
nicht?

Gruß

PS: Verwende doch bitte auch die Code Tags.
 

ltPerly

Mitglied
Da krieg ich 'nen Laufzeitfehler 13 - Typen unverträglich.

Hab ich vielleicht bei der Deklaration was falsch gemacht?

Code:
Dim files2() As String
    files2 = Array("1", "2", "3", "4", "5")
 

deepthroat

Erfahrenes Mitglied
Ja. Die Array Funktion gibt immer ein Variant Array zurück.

Code:
Dim files2()             ' oder
Dim files2() as Variant  ' oder
Dim files2
sollte alles funktionieren.

Gruß
 

theva

Mitglied
Hi, habe bzg. dieser Thread auch fragen. Hoffe Ihr könnt mir weiterhelfen

Ich benutzte Do-Loop Schleife. Alle ExcelDatei-Werte werden gelesen...

i=1
do
wert1= Worksheets("Sheet1").Cells(i, 1).Value
loop endezeile

wert1 wird ja bei jedem Schleifendurchgang überschrieben

Wie kann ich wert1 zu einem Array machen, so dass ich jederzeit die Werte entnehmen kann.
 

goto;

Erfahrenes Mitglied
Hi,

so in etwa sollte das ganze aussehen (nicht getestet)

PS: Die Länge des Arrays muss natürlich angepasst werden.


Code:
Dim myArray as variant
ReDim myArray(1 to 9999)

Dim i as integer = 1
Do
    myArray(i) = DeinValue
Loop Until i > 9998

Viele Grüße
goto;
 

theva

Mitglied
Hi,

so in etwa sollte das ganze aussehen (nicht getestet)

PS: Die Länge des Arrays muss natürlich angepasst werden.


Code:
Dim myArray as variant
ReDim myArray(1 to 9999)

Dim i as integer = 1
Do
    myArray(i) = DeinValue
Loop Until i > 9998

Viele Grüße
goto;
Vielen Dank, das geht ja...
aber ich möchte in eine zweiwertige Array schreiben.

--> wert(a,b)=werteexcel(spalte,zeile)


Also: Alle Excelspalten und zeilen, die durch do loop erfasst wurden auch durch array Anweisung. Sollen auf andere Variablen(a,b) zugewiesen werden damit.. ich in nächsten subs nicht nochmal lesen muss.
 
Zuletzt bearbeitet:

Yaslaw

n/a
Moderator
Etwa so, wenn die Zeile und Spalte von klein nach gross abgearbeitet werden
Visual Basic:
Dim myArray() as variant
Dim cell As Range
Do
    Set cell = Worksheets("Sheet1").Cells(i, 1)
    redim preserve myArray(cell.row, cell.column)
    myArray(cell.row, cell.column) = cell.Value
Loop endezeile
 

theva

Mitglied
Etwa so, wenn die Zeile und Spalte von klein nach gross abgearbeitet werden
Visual Basic:
Dim myArray() as variant
Dim cell As Range
Do
    Set cell = Worksheets("Sheet1").Cells(i, 1)
    redim preserve myArray(cell.row, cell.column)
    myArray(cell.row, cell.column) = cell.Value
Loop endezeile

Ich versuche es mal so zu erklären. Mein Code ist wie folg:

Code:
Do
name= Worksheets("Sheet1").Cells(a, 1).Value
adresse = Worksheets("Sheet1").Cells(a, 2).Value
                                                
a = a + 1                                                                      

Print #test,  name

Loop Until a = ende_zeile

Meine Print wird in der Schleife durchgeführt. Ich möchte aber, dass die variable "name" zu einem Vektor wird, damit ich woanders sagen kann, print #test name(a,b)= ....
 

Neue Beiträge