kostenloser Webspace werbefrei: lima-city


Verständnis- und erweiterungshilfe gesucht

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    quakewars

    quakewars hat kostenlosen Webspace.

    Guten Morgen!

    also erstmal vorweg: ich habe heute mit VBA angefangen und verstehe den syntax noch nicht so ganz.
    ich möchte in einem Excelsheet nach einer Zelle mit einem Wert suchen und dann alle werte darunter in ein Array schreiben.
    Dazzu habe ich mir das Beispiel zu Find kopiert und angepasst:
    Sub suche()
    With Worksheets("S12").Range("a1:k10")
        Set c = .Find("Hostname", LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                MsgBox (c.Address)
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
    
    End Sub


    Nun die Frage, auf was prüft dieses Nothing ab? ist das mit NULL in php zu vergleichen?
    welchen sinn hat die Variable firstAddress?
    warum kann ich die adresse nicht per: hostzelle = c.Address der variablen hostzelle zuweisen?
    und die wohl wichtiogste frage: wie kann ich nun alle werte unter der Zelle in ein Array speichern?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Hi,

    hier ist der Code von dir mit ein paar Kommentaren.
    Es ist außerdem hilfreich eindeutige Variablennamen zu verwenden statt einfach nur "c". (Ausnahme bei Zählschleifen...)

    Sub Suche()
    
        Dim SearchRange As Range
        Dim FirstAdress As String
        Dim ListCells() As String
        ReDim ListCells(0)
        
        With Worksheets("Tabelle1").Range("A1:K10")
            
            'Den ersten Eintrag suchen
            Set SearchRange = .Find("Hostname", LookIn:=xlValues, LookAt:=xlWhole)
            If Not SearchRange Is Nothing Then
                FirstAdress = SearchRange.Address
                Do
                
                    'In das Array eintragen, dabei das Array vergrößern
                    If ListCells(0) = "" Then
                    
                        'Hinweis: Hier wird die Adresse der Zelle gespeichert,
                        '         also z.B. "$A$1". Um den Inhalt der Zelle zu
                        '         speichern, muss nur "SearchRange" abgefragt
                        '         werden statt "SearchRange.Address"
                        ListCells(0) = SearchRange.Address
                    Else
                    
                        'Array vergrößern, wobei alte Werte erhalten werden sollen
                        ReDim Preserve ListCells(UBound(ListCells) + 1)
                        
                        'Hinweis: Hier wird die Adresse der Zelle gespeichert,
                        '         also z.B. "$A$1". Um den Inhalt der Zelle zu
                        '         speichern, muss nur "SearchRange" abgefragt
                        '         werden statt "SearchRange.Address"
                        ListCells(UBound(ListCells)) = SearchRange.Address
                    End If
                    
                    'Den nächsten Eintrag suchen
                    Set SearchRange = .FindNext(SearchRange)
                    
                'Falls der nächste Eintrag nicht leer ist und
                'der nächste Eintrag nicht dem ersten Eintrag entspricht,
                'dann wird die Suche fortgesetzt.
                'Denn wenn die Suche fertig ist, würde sie von vorne nochmals beginnen.
                Loop While Not SearchRange Is Nothing And SearchRange.Address <> FirstAdress
            End If
        End With
    
        'Daten aus dem Array in die erste Spalte schreiben...
        Dim i As Integer
        For i = 0 To UBound(ListCells)
            Cells(i + 1, 1) = ListCells(i)
        Next
    
    End Sub



    cbhp
  4. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.


    Nun die Frage, auf was prüft dieses Nothing ab? ist das mit NULL in php zu vergleichen?


    Hm, gute Frage. Wie's in PHP richtig heißt, weiß ich nicht, aber in Pascal (Delphi) wäre das Äquivalent, um den Inhalt einer Variable vom Typ Variant (oder OLEVariant) zu überprüfen varEmpty. In VB heißt das eben Nothing.
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!