Нужно в цикле значения с первого закрашенного желтым диапазона занести в массив, потом после обработки значений этого массива (это я сам) массив очистить и тоже самое сделать со следующим желтым диапазоном и т.д. Вторым столбиком в массиве будет значение столбца RowNum*. RowNum* может принимать значения RowNum, RowNum2, Rownum3, ..., Rownum10. Столбца Rownum1 нет. А вот для первого столбца значения на листе могут быть, а может и не быть. Если нет (например AP62:AP63 или AS66:AS67), то заполняем первый столбец массива пустой строкой. Пример: Для AF12:AG21 массив должен быть такой [vba]
[/vba] Пример: Для AP62:AP63 массив должен быть такой [vba]
Код
"" 4 "" 8
[/vba] Точно известно, что ранг будет состоять из одного столбца, если столбец перед ним имеет наименования RowNum*. Range("AH65536").End(xlUp).Select выделит не нижнюю ячейку желтого диапазона, а нижнюю ячейку UsedRange
Нужно в цикле значения с первого закрашенного желтым диапазона занести в массив, потом после обработки значений этого массива (это я сам) массив очистить и тоже самое сделать со следующим желтым диапазоном и т.д. Вторым столбиком в массиве будет значение столбца RowNum*. RowNum* может принимать значения RowNum, RowNum2, Rownum3, ..., Rownum10. Столбца Rownum1 нет. А вот для первого столбца значения на листе могут быть, а может и не быть. Если нет (например AP62:AP63 или AS66:AS67), то заполняем первый столбец массива пустой строкой. Пример: Для AF12:AG21 массив должен быть такой [vba]
[/vba] Пример: Для AP62:AP63 массив должен быть такой [vba]
Код
"" 4 "" 8
[/vba] Точно известно, что ранг будет состоять из одного столбца, если столбец перед ним имеет наименования RowNum*. Range("AH65536").End(xlUp).Select выделит не нижнюю ячейку желтого диапазона, а нижнюю ячейку UsedRange SergeyKorotun
Public Sub www() Dim lc&, i&, a lc = Me.[a1].End(xlToRight).Column For i = 1 To lc If InStr(1, Me.Cells(1, i), "ROWNUM", 1) Then a = Intersect(Me.UsedRange, Me.Columns(i)).SpecialCells(2, _ 1).Areas(1).Offset(, -1).Resize(, 2).Value 'тут Ваша обработка End If Next End Sub
[/vba]
[vba]
Код
Public Sub www() Dim lc&, i&, a lc = Me.[a1].End(xlToRight).Column For i = 1 To lc If InStr(1, Me.Cells(1, i), "ROWNUM", 1) Then a = Intersect(Me.UsedRange, Me.Columns(i)).SpecialCells(2, _ 1).Areas(1).Offset(, -1).Resize(, 2).Value 'тут Ваша обработка End If Next End Sub
Вопрос в том, будет ли делать то, что хотца. Я ведь общей задачи не знаю.
Уже делает. Собирает некоректно импортированный xml файл, столбцы которого оказываются разбросанными по разных строкам листа в начало листа и ненужные строки удаляет. И хотя это лишь небольшая подзадача, но самая сложная. Еще раз спасибо. В приложении отчет.
Вопрос в том, будет ли делать то, что хотца. Я ведь общей задачи не знаю.
Уже делает. Собирает некоректно импортированный xml файл, столбцы которого оказываются разбросанными по разных строкам листа в начало листа и ненужные строки удаляет. И хотя это лишь небольшая подзадача, но самая сложная. Еще раз спасибо. В приложении отчет.SergeyKorotun