VBA-Makro - erste leere Spalte aus einem bestimmten Zeilenbereich finden

VBA-Makro - erste leere Spalte aus einem bestimmten Zeilenbereich finden

Bei den meisten Lösungen, die ich gegoogelt habe, ging es entweder darum, die erste leere Spalte oder die erste leere Zeile zu finden, aber ich muss speziell die erste leere Spalte in einem Zeilenbereich finden.

Ich muss etwas aus einer Arbeitsmappe in eine andere Arbeitsmappe einfügen, aber zuerst muss ich die erste leere Spalte in einem Zeilenbereich von (100:114) finden.

Ich könnte posten, was ich bisher habe, aber es funktioniert bei weitem nicht.

Antwort1

Meine VBA-Kenntnisse sind also völlig eingerostet, aber wenn Sie sich Tom Urtis Beitrag aufVorgehensweise: Auswählen eines BereichsWenn Sie im Microsoft Developers Network einen Datenbereich mit unbekanntem Startort auswählen, finden Sie dort die erforderlichen Objekte und Methoden, die Sie benötigen, um eine Lösung für Ihr Vorhaben zu erarbeiten. Unten finden Sie einen Nachdruck des Codes von diesem Link:

Sub UnknownRange()
If WorksheetFunction.CountA(Cells) = 0 Then
    MsgBox "There is no range to be selected.", , "No cells contain any values."
    Exit Sub
Else
    Dim FirstRow&, FirstCol&, LastRow&, LastCol&
    Dim myUsedRange As Range
    FirstRow = Cells.Find(What:="*", SearchDirection:=xlNext, SearchOrder:=xlByRows).Row

    On Error Resume Next
    FirstCol = Cells.Find(What:="*", SearchDirection:=xlNext, SearchOrder:=xlByColumns).Column
    If Err.Number <> 0 Then
        Err.Clear
        MsgBox _
        "There are horizontally merged cells on the sheet" & vbCrLf & _
        "that should be removed in order to locate the range.", 64, "Please unmerge all cells."
        Exit Sub
    End If

    LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
    LastCol = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
    Set myUsedRange = Range(Cells(FirstRow, FirstCol), Cells(LastRow, LastCol))
    myUsedRange.Select
    MsgBox "The data range on this worksheet is " & myUsedRange.Address(0, 0) & ".", 64, "Range address:"
End If
End Sub

verwandte Informationen