Страницы: 1
RSS
Как узнать индекс элемента в цикле for each...
 
Собственно, вопрос в названии темы. Есть цикл, в котором перебираются элементы массива. При этом, как у любого цикла for тут есть управляющая переменная. Возможно ли на любой итерации узнать, какой именно элемент двумерного массива сейчас обрабатывается? (без необходимости самому считать итерации в i=i+1) Либо же управляющая переменная получает только значение и никакой информации о ее местоположении в массиве нет?
В качестве пояснения: дорабатываю под себя макрос для преобразования сводной таблицы в плоскую. Если значения ячеек можно загнать в массив одним оператором присваивания, то с NumberFormat так не выйдет. Я ввел еще один массив, а для его заполнения хочу применить цикл. Мог бы использовать простой for, но задался вот таким вопросом. Если у кого-то есть готовый ответ, хотелось бы узнать. Заранее спасибо.
 
Наверное, без переменной-счётчика не обойтись.
 
Если перебираете ячейки и заносите в массив описание формата - добавьте ещё один столбец и заносите и адрес. Можно в виде строка/столбец.
Или можно набирать словарь, где ключ - адрес, а в item можно что угодно положить.
 
хм, со словарями я еще не работал, но думаю что смогу посверлить в этом направлении. Спасибо.
 
Знаете, что "не в тему" и всё равно пишете...
 
Обратите внимание - for each
Как-то спрашивал. Если правильно помню: в этом цикле перебор значений не имеет определенного порядка. Из массива данные выбираются "а кто его знает, как" :)
 
Цитата
vikttur пишет:
Из массива данные выбираются
по строкам - слева на право; строки сверху вниз...
 
Возможно, "тут помню, тут не помню" :) , но как-то не так.
Была задача по заливке ячеек диапазона, по "глюкам" в этой задаче создавал тему на старом форуме...
 
Вить, ты что-то путаешь - порядок есть и он вполне определённый))
Для проверки:
Код
Sub qqq()
Dim rCell As Range
    For Each rCell In Range("A1:C3")
        MsgBox rCell.Address(0, 0)
    Next
End Sub
 
Может быть этот порядок не регламентирован?
Где-то читал, что например порядок элементов в словаре не регламентирован - хотя обычно они лежат в порядке поступления, но это не гарантируется. По какой причине он может быть нарушен - не объяснялось.
Страницы: 1
Читают тему
Наверх