Anzeige

 Werte in Array schreiben


#1
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
#2
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.
 
#3
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")
 
#6
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.
 
#7
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;
 
#8
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
#9
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
 
#10
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)= ....
 

Yaslaw

n/a
Moderator
#11
Habe ich doch mehr oder weniger
Visual Basic:
Dim name() as String
Redim name(ende_zeile, 1)
Do
 name(a, 1) =  Worksheets("Sheet1").Cells(a, 1).Value
 adresse = Worksheets("Sheet1").Cells(a, 2).Value

 a = a + 1                                                                     
Loop Until a = ende_zeile
Nachtrag:
Warum ein do...Loop, wenn man mit einem Zähler arbeitet?
Visual Basic:
Dim name() as String
Redim name(ende_zeile, 1)
For a = 1 to ende_zeile
 name(a, 1) =  Worksheets("Sheet1").Cells(a, 1).Value
 adresse = Worksheets("Sheet1").Cells(a, 2).Value
next a
 
#12
Sorry ich bins wieder...

hier zeigt er Fehler an! name(a, 1) = Worksheets("Sheet1").Cells(a, 1).Value

Expected: ).
Nach a soll ")" kommen... macht aber kein Sinn
 

Yaslaw

n/a
Moderator
#13
'name' ist ein geschützter Name und sollte nicht verwendet werden.
Benenne die Variable anderst. zB. userName oder familyName etc.
Oder da es eine Ansammlung von Namen ist einfach names
 
Anzeige

Neue Beiträge

Anzeige