Выполнить итерацию по таблице и использовать несколько значений из каждой строки

#excel #vba

#excel #vba

Вопрос:

У меня есть рабочий лист 1, на котором я уже запускаю цикл для каждой ячейки. Эта ячейка должна быть отформатирована в соответствии с несколькими значениями из таблицы на листе 2. Эти значения необходимо сравнить строка за строкой, чтобы определить, каким цветом сделать ячейку на листе 1.

Например: на листе 1, ячейка A3, формуле необходимо выполнить итерацию по каждой строке таблицы 1 листа 2 и взять 1-й столбец, 2-й столбец и 3-й столбец КАЖДОЙ строки Таблицы1, чтобы принять решение о том, какого цвета будет ячейка A3. Затем он перейдет к следующей ячейке на листе 1.

У меня уже есть цикл, который переходит к каждой ячейке на листе 1. У меня возникли проблемы с пониманием того, как выполнять итерацию по таблице по строкам и иметь возможность ссылаться на несколько значений в одной строке для операторов if и сравнения дат.

У кого-нибудь есть какие-либо советы или ресурсы? Благодаря моим исследованиям я обнаружил, что массивы могут быть способны выполнить эту задачу, но я не совсем уверен, как это будет выглядеть.

Комментарии:

1. Адам — добро пожаловать в StackOverflow; похоже, вы на правильном пути, но, пожалуйста, предоставьте код, чтобы мы могли помочь устранить проблему.

2. Я не написал код для итерации по таблице / выбора информации из строк, потому что я не совсем уверен, как это написать. Это единственная часть, по которой мне нужна помощь. Я не возражаю, если вы напишете свою собственную интерпретацию того, как это сделать — я думаю, что я способен интегрировать это в код, который у меня есть сейчас. Из-за характера проекта, над которым я работаю, мне физически невозможно скопировать / вставить его сюда.

Ответ №1:

Я смог решить эту проблему с помощью массивов.

 For i = LBound(arr, 1) To UBound(arr, 1)
    value1 = arr(i, 1)
    value2 = arr(i, 2)
    value3 = arr(i, 3)
End If
  

В итоге все оказалось очень просто.