Makro:Das n-te Element einer Zeile löschen

Aus XIMES

Wechseln zu: Navigation, Suche
   Function Delete_Nth_Element(was As String, nr As Integer) As String
   Dim str As String
   Dim i As Integer
   Dim vorn As Integer  'Erster Buchstabe des Elements'
   Dim hinten As Integer 'Letzter Buchstabe des elements inkl Trennzeichen, sovorhanden
   Dim trennzeichen As String
       trennzeichen = ";"
   
       vorn = 0
       hinten = 0
       For i = 1 To nr
               
               If IsError(InStr(hinten + 1, was, trennzeichen)) Then
                   If i < nr Then Stop
                   vorn = hinten
                   hinten = 0
                   Exit For
               ElseIf InStr(hinten + 1, was, trennzeichen) = 0 Then
                   vorn = hinten
                   hinten = 0
                   Exit For
               Else
                   vorn = hinten + 1
                   hinten = InStr(hinten + 1, was, trennzeichen)
               End If
       Next
       
       str = ""
       If vorn > 1 Then str = Left(was, vorn - 1)
       If hinten > 0 Then str = str & Right(was, Len(was) - hinten)
       
       Delete_Nth_Element = str
       
   End Function
   Sub testDelete_Nth_Element()
   Dim str As String
   
       str = Delete_Nth_Element("1;22;333;4444;55555;666666;7777777", 1)
       If str <> "22;333;4444;55555;666666;7777777" Then Stop
       str = Delete_Nth_Element("1;22;333;4444;55555;666666;7777777", 3)
       If str <> "1;22;4444;55555;666666;7777777" Then Stop
       str = Delete_Nth_Element("1;22;333;4444;55555;666666;7777777", 7)
       If str <> "1;22;333;4444;55555;666666" Then Stop
   End Sub
Persönliche Werkzeuge