Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Probleme mit mehrdimensionalen Arrays in VB.NET

Frage Entwicklung Visual Studio

Mitglied: MarcoBorn

MarcoBorn (Level 1) - Jetzt verbinden

06.03.2014 um 13:14 Uhr, 3181 Aufrufe, 10 Kommentare

Hallo Forum,
ich versuche gerade, in VB.NET ein mehrdimensionales Array zu definieren, dann mit Werten zu füllen und anschließend diese an Excel zu übergeben. Ziel ist in Excel eine Tabelle, die 6 Spalten enthält, wobei die Zahl der Zeilen variieren kann. Aus Performancegründen will ich nicht die Werte einzeln in die Excel-Zellen schreiben, sondern das gesamte Array mit einem einzelnen Befehl.

Folgenden Code habe ich dazu ausprobiert:

Dim myArray() as Object
For i = 1 to Anzahl
ReDim Preserve myArray(Anzahl, Anzahl, Anzahl, Anzahl, Anzahl, Anzahl)
Hilfsarray1(i) = Variable1
Hilfsarray2(i) = Variable2
Hilfsarray3(i) = Variable3
Hilfsarray4(i) = Variable4
Hilfsarray5(i) = Variable5
Hilfsarray6(i) = Variable6
myArray() = (Hilfsarray1(i), Hilfsarray2(i), Hilfsarray3(i), Hilfsarray4(i), Hilfsarray5(i), Hilfsarray6(i))
Next
xlApp.Range(Cells(1, 1), Cells(Anzahl, 6)) = myArray


Variable1 bis Variable6 stehen für jeweils 6 Werte, die in die entsprechenden Spalten geschrieben werden. Irgendwo ist aber der Wurm drin, weil das Makro mit nichtssagenden Fehlermeldungen abbricht. Ich bin hinsichtlich Arrays in VB.NET noch völlig unerfahren und für jeden Hinweis dankbar.


Viele Grüße,
M. Born
Mitglied: emeriks
LÖSUNG 06.03.2014, aktualisiert um 15:49 Uhr
Erstmal: Eine einfache Tabelle hat nur 2 Dimensionen: Zeilen und Spalten

Versuchs mal so:

01.
Dim Rows As New List(Of Array) 
02.
Rows.Add({"a", "b", "c", "d", "e", "f"}) 
03.
 
04.
Rows.Add({Var1, Var2, Var3, Var4, Var5, Var6}) 
05.
 
06.
Dim RowArray() = Rows.ToArray
E.
Bitte warten ..
Mitglied: MarcoBorn
06.03.2014 um 13:45 Uhr
Hallo emeriks,
in Zeile 2 meckert mein Compiler folgendes an: Komma, ")" oder gültige Ausdrucksfortsetzung erwartet.
Denselben Fehler erhalte ich für Zeile 4, wenn ich Zeile 2 auskommentiere.

Ist da noch was anderes falsch?

M. Born
Bitte warten ..
Mitglied: emeriks
06.03.2014, aktualisiert um 13:47 Uhr
Reden wir tatsächlich von VB.Net oder etwa VBA?
Bitte warten ..
Mitglied: MarcoBorn
06.03.2014 um 13:52 Uhr
Von VB.NET. Ich programmiere in SharpDevelop eine DLL, die dann auch auf Excel zugreift.
Bitte warten ..
Mitglied: emeriks
06.03.2014 um 13:57 Uhr
Ah, ok. Da kann ich dann nicht helfen. Diese IDE habe ich noch nie benutzt.

Aber im Prinzip musst Du jetzt nur rausfinden, wie die entsprechende Syntax in dieser IDE aussehen muss.

E.
Bitte warten ..
Mitglied: MarcoBorn
06.03.2014 um 14:02 Uhr
Das ist dieselbe Syntaxt wie in Visual Studio. Ist quasi eine OpenSource-Umsetzung einer IDE für .NET.
Bitte warten ..
Mitglied: emeriks
06.03.2014 um 14:16 Uhr
Na offensichtlich nicht. Der von mir genannte Code wird bei mir in der IDE (VS 2012) jedenfalls nicht angemeckert.

Vielleicht Problem mit Copy&Paste? Schreib mal von Hand ab, vielleicht hilft's.

E.
Bitte warten ..
Mitglied: MarcoBorn
06.03.2014 um 14:51 Uhr
Hat leider auch nicht geholfen. Aber Dein Hiweis, dass Excel nur 2 Dimensionen kennt, war wahrscheinlich der richtige Tipp. Ich brauch ja auch kein 6-dimensionales Array, sondern eine Tabelle mit 6 Spalten. Die Zahl der ausgeworfenen Fehler nimmt schon ab....
Bitte warten ..
Mitglied: colinardo
LÖSUNG 06.03.2014, aktualisiert um 15:50 Uhr
Hallo M.Born,
für die Zuweisung an einen Range in Excel brauchst du ein reines 2-Dimensionales String-Array. Es dürfen keine geschachtelten Array's sein.
Als Beispiel siehe dazu: http://stackoverflow.com/questions/12545054/array-to-excel-using-vb-net

Grüße Uwe
Bitte warten ..
Mitglied: MarcoBorn
06.03.2014 um 15:48 Uhr
Folgender Code funktioniert:

Dim myArr(länge, 6) As Object
For i = 1 to Anzahl
myArr(i, 0) = Variable1
myArr(i, 1) = Variable2
myArr(i, 2) = Variable3
myArr(i, 3) = Variable4
myArr(i, 4) = Variable5
myArr(i, 5) = Variable6
Next
xlApp.Range(Cells(1, 1), Cells(UBound(myArr, 1), UBound(myArr, 2))) = myArr

Danke für den Wink mit dem Zaunpfahl, emeriks.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Visual Studio
gelöst VB.Net - Problem mit Umleitung der Standard-Ausgabe (4)

Frage von emeriks zum Thema Visual Studio ...

Visual Studio
gelöst Vb.net Pfadangabe mit Wildcards wie Stern Regex Pattern (2)

Frage von Pilger83 zum Thema Visual Studio ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (24)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...