Excel VBA, столкнувшись с некоторыми проблемами - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть этот код:

For Search_Library = 0 To 200
    j = Search_Library * 20
    If Worksheets("Config Algemeen").Range("H2").offset(Search_Config, 0).Value = Worksheets("Library").Range("A2").offset(j, 0).Value Then
        For k = 1 To 200
            l = k * 2
            For m = 0 To 19
                MyChoices(m) = Worksheets("Library").Range("A2").offset(j + m, l).Value
            Next m
                With Worksheets("Config Algemeen").Range("H2").offset(Search_Config, k).Validation
                    .Delete
                    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
                    Operator:=xlBetween, Formula1:=Join(MyChoices, ",")
                End With
        Next k
    Else
        'Nothing
    End If
Next Search_Library

Теперь я сталкиваюсь с проблемой: я хочу перебирать «Search_Config» каждый раз, когда «Search_Library» достигает значения 200 (максимальное значение).Каков наилучший способ просмотра цикла "Search_Config"?В основном я хочу добавить 1 (+1) к «Search_Config» и начать с нуля (0) с «Search_Library».

1 Ответ

0 голосов
/ 16 ноября 2018
For Search_Config = 0 To 200
For Search_Library = 0 To 200
    j = Search_Library * 20
    If (Worksheets("Config Algemeen").Range("H2").offset(Search_Config, 0).Value = Worksheets("Library").Range("A2").offset(j, 0).Value) And Not (Worksheets("Config Algemeen").Range("H2").offset(Search_Config, 0).Value = "") Then
        For k = 1 To 200
            l = k * 2
            n = l - 1
            For m = 0 To 19
                MyChoices(m) = Worksheets("Library").Range("A2").offset(j + m, l).Value
            Next m
                With Worksheets("Config Algemeen").Range("H2").offset(Search_Config, k)
                    If Not Worksheets("Library").Cells(2 + j, 1 + n).Value = "" Then
                        .AddComment Worksheets("Library").Cells(2 + j, 1 + n).Value
                    Else
                        'Nothing
                    End If
                    If Worksheets("Library").Range("A2").offset(j, l).Value = "*VALUE*" Or Worksheets("Library").Range("A2").offset(j, l).Value = "" Then
                        'Nothing
                    Else
                        .Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
                        Operator:=xlBetween, Formula1:=Join(MyChoices, ",")
                    End If
                End With
        Next k
    Else
        'Nothing
    End If
Next Search_Library
Next Search_Config

Теперь работает так.И все вроде нормально.Это быстро и солитно, как рок.Спасибо за помощь мне!Это привело меня на правильный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...