Удалить строку из многомерного массива - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть следующий код, и я застрял на данный момент. Вместо этой строки я действительно хочу удалить строку. Как это сделать?

cData(rw, 5) = "Matching DES found"

For rw = 1 To UBound(cData, 1)
            'For Each e In cRng
            For rw2 = 1 To UBound(cData, 1)
                If Left(cData(rw, 1), 4) <> "DES_" Then
                    a = cData(rw, 3)

                    If Left(cData(rw2, 1), 4) = ("DES_") And Right(cData(rw2, 1), Len(a)) = a Then
                        cData(rw, 5) = "Matching DES found"


                        'cData(rw, 1) = Empty
                        Exit For
                        'GoTo nextI
                        Exit For
                   Else
                       cData(rw, 5) = "unique"
                       'GoTo nextE
                   End If
               Else
                   'GoTo nextI
                   Exit For
               End If
'nextE:
           Next
'nextI:
       Next

1 Ответ

0 голосов
/ 27 февраля 2020

Здесь решение с использованием ListBox в памяти: (удаление назад)

Set ListBoxData = CreateObject("New:{8BD21D20-EC42-11CE-9E0D-00AA006002F3}") 'Listbox
ListBoxData.List = cData
For rw = ListBoxData.ListCount - 1 To 0 Step -1
            'For Each e In cRng
            For rw2 = ListBoxData.ListCount - 1 To 0 Step -1
                    If Left(ListBoxData.List(rw, 0), 4) <> "DES_" Then
                    a = ListBoxData.List(rw, 2)

                    If Left(ListBoxData.List(rw2, 0), 4) = "DES_" And Right(ListBoxData.List(rw2, 0), Len(a)) = a Then
                        ListBoxData.List(rw, 4) = "Matching DES found"
                ListBoxData.RemoveItem rw 'remove your row

                        'ListBoxData(rw, 1) = Empty
                        Exit For
                        'GoTo nextI
                        'Exit For
                   Else
                       ListBoxData.List(rw, 4) = "unique"
                       'GoTo nextE
                   End If
               Else
                   'GoTo nextI
                   Exit For
               End If
'nextE:
           Next
'nextI:
       Next
       newcData = ListBoxData.List 'cleaned Listboxdata to a new Array, but lbound = 0 so act accordingly
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...