VBA konvertieren, range to array und format Datum
Kämpfe ich mit einer Umstellung auf array in VBA :
Dim list As Range
Set list = Range(series, series.End(xlDown))
list.Select
Dim table() As Variant
Set table = list.value
Mein Verständnis ist, dass value
gibt ein array zurück, richtig ? Ich verstehe nicht, warum VBA sagt mir, dass ich "can't assign to array"
.
Meine list
Reihe sieht aus wie das in Excel zu Select
, und ich Streben an, dass die, die als array, so dass ich formatieren kann meine Termine mit so etwas wie Format(table.Rows(i).Columns(1).value, "yyyy-mm-dd")
looping auf meinem Tisch.
02-Sep-09 1.00
18-Sep-09 1.00
16-Oct-09 1.00
20-Nov-09 1.00
18-Dec-09 1.00
19-Mar-10 1.00
18-Jun-10 1.00
Durch die Art und Weise, ist es möglich, die Tabelle zu ändern statt ?
Dank !
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Reihe von problem hier.
Problem 1
Tabelle ist kein Objekt, also kann man nicht einstellen können. Versuchen:
Problem 2
Serie ist ein VBA-Schlüsselwort im Zusammenhang mit Diagrammen. Bitte wählen Sie einen Namen, wie MyWSTable, was bedeutet, dass nichts von VBA.
Problem 3
Einem Arbeitsblatt name ist nicht aus sich selbst eine Reihe aus. Versuchen:
Hinweis: Sie müssen keine variable list noch brauchen Sie, um den Bereich auszuwählen.
Antwort auf die Formatierung Frage
Dem folgenden code wird formatieren Sie Ihre Termine:
Date
Daten Typ; in diesem Fall wird auch das Datum wird dargestellt als ein IEEE-double. Und wie kamst du auf die Termine, die Geburtstage von meinem Vater und meiner Mutter im Gesetz?Können Sie entfernen Sie Ihre wählen Sie:
list.Select
Sicher sein, bekommen Sie keine Fehler bei der Zuordnung einer Reihe zu einem array, solltest du besser deklarieren Sie das array als variant:
Diese Fehlermeldung knallen weil Sie mit SET zum füllen des Arrays. Drop EINGESTELLT werden und es sollte laden.
Können Sie fil direkt das array wie folgt:
Omiting die Wählen Sie Schritt macht Ihren code sicherer und schneller.
Leider, Sie können nicht geladen werden die Werte direkt als Termine. Sie haben nach loop throu jedes Element des Arrays und wenden Sie in Datum.
Du gehst über dieses falsch. Sollten Sie die
NumberFormat
- Eigenschaft des range angeben, um die Anzeige format. So etwas wie dieses: