#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
В итоге все оказалось очень просто.