Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
824to828
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
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

in Array schreiben, wobei nicht doppelt sein darf

in Array schreiben, wobei nicht doppelt sein darf
04.12.2006 15:12:24
Sebastian
Hi
Ich habe vor ein Array einzulesen (einzelne Buchstaben pro Zeile).
Jede Zeile enthält einen Buchstaben, den es sonst noch nicht dort drin gibt.
Gibt es dafür eine schnelle Funktion? ..z.B.
If Not exist_in_array("C") then write_to_array("C")
Welche Zeile ist erstmal egal, werde es dann ordnen.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: in Array schreiben, wobei nicht doppelt sein darf
04.12.2006 15:52:49
Peter
Hallo Sebastian,
angenommen, deine Buchstaben stehen in Spalte A, dann so:


Public Sub InArrayLesen()
Dim aVar()     As Variant
Dim iVarInd    As Integer
Dim iIndex     As Integer
Dim lZeile     As Long
Dim bGefunden  As Boolean
Dim sText      As String
   For lZeile = 1 To Range("A65536").End(xlUp).Row
      If iVarInd = 0 Then
         iVarInd = iVarInd + 1
         ReDim Preserve aVar(iVarInd)
         aVar(iVarInd) = RTrim(Left(Range("A" & lZeile).Value, 1))
       Else
         bGefunden = False
         For iIndex = 1 To UBound(aVar)
            If aVar(iIndex) = RTrim(Left(Range("A" & lZeile).Value, 1)) Then
               bGefunden = True
               Exit For
            End If
         Next iIndex
         If bGefunden = False Then
            iVarInd = iVarInd + 1
            ReDim Preserve aVar(iVarInd)
            aVar(iVarInd) = RTrim(Left(Range("A" & lZeile).Value, 1))
         End If
      End If
   Next lZeile
   For iVarInd = 1 To UBound(aVar)
      sText = sText & aVar(iVarInd) & vbCrLf
   Next iVarInd
   MsgBox sText
End Sub 


Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: in Array schreiben, wobei nicht doppelt sein darf
04.12.2006 15:58:08
ChrisL
Hallo Sebastian
Üblicherweise stammen die Daten aus Tabellen. In solchen Fällen führe ich die Checks i.d.R. direkt in der Tabelle aus z.B.

Private Sub UserForm_Initialize()
Dim iZeile As Long
For iZeile = 1 To Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(Range("A1:A" & iZeile), Range("A" & iZeile)) = 1 Then _
ComboBox1.AddItem Range("A" & iZeile)
Next iZeile
End Sub

Bezogen auf Deine Frage, habe ich eine kleine Funktion erstellt (Brecheisen-Methode):
Sub test()
Dim arr(2)
arr(0) = "A"
arr(1) = "B"
arr(2) = "C"
MsgBox ExistInArray("d", arr)
End Sub

Private Function ExistInArray(strSuchwert As String, arr As Variant) As Boolean
On Error GoTo ErrorHandler
If Application.Match(strSuchwert, arr, 0) >= 1 Then
ExistInArray = True
Exit Function
End If
ErrorHandler:
End Function

Gruss
Chris
Anzeige
AW: in Array schreiben, wobei nicht doppelt sein darf
04.12.2006 17:14:28
Peter
Hallo Sebastian,
hier als Muster zwei Varianten - unsortiert und sortiert - als Großbuchstaben, per Ucase
https://www.herber.de/bbs/user/38723.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige