Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1916to1920
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

UBound

UBound
11.02.2023 15:29:16
Antonio
Hallo Gemeinde,
Ich versuche an die Variable "sp" ein Bereich der Tabelle zu übergeben.
Im Code ist an dieser Stelle:
For jj = 2 To UBound(sp)

Ubound mit eingebaut, der nach ein Datenfeld verlangt,
Ich habe im oberen Teil des Codes auch schon mit Select Case probiert, gelingt mir nicht.
Hier der Code:
Sub Pattern()
    Call SplitTAB
    With Worksheets("Neuer_Song")
        If .Range("BI2") = "Bossa Nova" Then
            sp = Range("BJ3:BJ10")
        End If
        If .Range("BI2") = "Swing" Then
            sp = Range("BK3:BK10")
        End If
   
   
   sn = Cells(1, 2).Resize(500, 10)   'Resize, erhöt die Zeilen-Spaltenzahl von (1, 2) auf (60, 6)
'   sp = Range("BJ3:BJ10")               'Muster Bereich
   N = 32                             ' 3 = Beginn Einfügezeile kann zB. 24 sein
'   For j = 26 To 37                     ' To 9 = Anzahl der Akkorde
   For j = 32 To Cells(1, 61)
     st = Split(sn(j, 5), ",")        'Akkordtöne splitten
     sn(N, 6) = sn(j, 1)
     N = N + 1                        'Abstand der Musteritems in Spalte G(6)
     For jj = 2 To UBound(sp)
       sn(N, 6) = "."
       sq = Split(sp(jj, 1), ",")
       If sq(0) > "." Then
         For Each it In sq
           sn(N, 6) = sn(N, 6) & "," & st(it - 1)
         Next
         sn(N, 6) = Mid(sn(N, 6), 3)   '3 = Anzahl der Akkordzeichen von hinten
       End If
       N = N + 1
     Next
   Next
   Cells(1, 2).Resize(500, 6) = sn
  End With
End Sub

Da ich in der Tabelle viele Bereich habe, die sich aus den Namen unterscheiden,
Ich würde es gerne automatisieren und den Bereich an die Variable "sp" übergeben:
 sp = Range("BJ3:BJ10")   

Ich bitte auf ein wenig Hilfe
LG Antonio

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UBound
11.02.2023 22:05:46
Michael
Hallo Antonio,
mal ins Blaue geraten: sp.width (https://learn.microsoft.com/de-de/office/vba/api/excel.range.width)
UBound ist für Arrays, sp ist eine Range, so wie Du die Variable befüllt hast.
Viele Grüße
Michael
AW: UBound
11.02.2023 22:25:39
onur
Wenn du ein Array mit einem Range befüllst, wir das Array IMMER 2-dimensional, selbst wenn das Range nur eine einzige Spalte enthält.
AW: UBound
11.02.2023 23:51:12
Yal
Hallo Antonio,
lass den Code in Schrittmodus laufen (F8), beim offenen Lokalfenster. Dort kannst Du die Variable sehen, die Typen, die sie annehmen, wenn der Typ nicht vorher festgelegt ist, und deren Inhalt. So wirst Du deinen Code besser verstehen, und viel schneller vorankommen.
VG
Yal
Anzeige
AW: UBound
12.02.2023 09:57:29
Antonio
@ Michael
@ onur
@ Yal
Vielen Dank,
WENN(werde mir alles im Schrittmodus anschauen und versuchen zu verstehen.);OKAY;Komme zurück
LG Antonio

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige