Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выделить диапазон и занести в массив - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Выделить диапазон и занести в массив
SergeyKorotun Дата: Воскресенье, 25.08.2013, 15:33 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 301
Репутация: 15 ±
Замечаний: 0% ±

Excel 2007
Нужно в цикле значения с первого закрашенного желтым диапазона занести в массив, потом после обработки значений этого массива (это я сам) массив очистить и тоже самое сделать со следующим желтым диапазоном и т.д.
Вторым столбиком в массиве будет значение столбца RowNum*. RowNum* может принимать значения RowNum, RowNum2, Rownum3, ..., Rownum10. Столбца Rownum1 нет. А вот для первого столбца значения на листе могут быть, а может и не быть. Если нет (например AP62:AP63 или AS66:AS67), то заполняем первый столбец массива пустой строкой.
Пример: Для AF12:AG21 массив должен быть такой
[vba]
Код
3000    1
4000    2
4000    3
2000    4
5000    5
3000    6
8000    7
6000    8
4000    9
8000    10
[/vba]
Пример: Для AP62:AP63 массив должен быть такой
[vba]
Код
""    4
""    8
[/vba]
Точно известно, что ранг будет состоять из одного столбца, если столбец перед ним имеет наименования RowNum*.
Range("AH65536").End(xlUp).Select выделит не нижнюю ячейку желтого диапазона, а нижнюю ячейку UsedRange
К сообщению приложен файл: selectrang.xlsx (27.2 Kb)
 
Ответить
СообщениеНужно в цикле значения с первого закрашенного желтым диапазона занести в массив, потом после обработки значений этого массива (это я сам) массив очистить и тоже самое сделать со следующим желтым диапазоном и т.д.
Вторым столбиком в массиве будет значение столбца RowNum*. RowNum* может принимать значения RowNum, RowNum2, Rownum3, ..., Rownum10. Столбца Rownum1 нет. А вот для первого столбца значения на листе могут быть, а может и не быть. Если нет (например AP62:AP63 или AS66:AS67), то заполняем первый столбец массива пустой строкой.
Пример: Для AF12:AG21 массив должен быть такой
[vba]
Код
3000    1
4000    2
4000    3
2000    4
5000    5
3000    6
8000    7
6000    8
4000    9
8000    10
[/vba]
Пример: Для AP62:AP63 массив должен быть такой
[vba]
Код
""    4
""    8
[/vba]
Точно известно, что ранг будет состоять из одного столбца, если столбец перед ним имеет наименования RowNum*.
Range("AH65536").End(xlUp).Select выделит не нижнюю ячейку желтого диапазона, а нижнюю ячейку UsedRange

Автор - SergeyKorotun
Дата добавления - 25.08.2013 в 15:33
Michael_S Дата: Воскресенье, 25.08.2013, 15:38 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Желтые ячейки для наглядности, или как?


Сообщение отредактировал Michael_S - Воскресенье, 25.08.2013, 15:38
 
Ответить
СообщениеЖелтые ячейки для наглядности, или как?

Автор - Michael_S
Дата добавления - 25.08.2013 в 15:38
SergeyKorotun Дата: Воскресенье, 25.08.2013, 16:25 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 301
Репутация: 15 ±
Замечаний: 0% ±

Excel 2007
Желтые ячейки для наглядности
Да
 
Ответить
Сообщение
Желтые ячейки для наглядности
Да

Автор - SergeyKorotun
Дата добавления - 25.08.2013 в 16:25
KuklP Дата: Воскресенье, 25.08.2013, 17:07 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
[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
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение[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
[/vba]

Автор - KuklP
Дата добавления - 25.08.2013 в 17:07
SergeyKorotun Дата: Воскресенье, 25.08.2013, 17:28 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 301
Репутация: 15 ±
Замечаний: 0% ±

Excel 2007
KuklP, спасибо. Завтра вечером проверю. Я забыл уточнить, что некоторых RowNum* может не быть. Ваш макрос в этом случае будет работать?
 
Ответить
СообщениеKuklP, спасибо. Завтра вечером проверю. Я забыл уточнить, что некоторых RowNum* может не быть. Ваш макрос в этом случае будет работать?

Автор - SergeyKorotun
Дата добавления - 25.08.2013 в 17:28
KuklP Дата: Воскресенье, 25.08.2013, 17:31 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Цитата (SergeyKorotun, Воскресенье, 25.08.2013, 17:28 # 5)
макрос в этом случае будет работать?
Работать-то будет, если даже ни одного RowNum не будет :D Вопрос в том, будет ли делать то, что хотца. Я ведь общей задачи не знаю.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Цитата (SergeyKorotun, Воскресенье, 25.08.2013, 17:28 # 5)
макрос в этом случае будет работать?
Работать-то будет, если даже ни одного RowNum не будет :D Вопрос в том, будет ли делать то, что хотца. Я ведь общей задачи не знаю.

Автор - KuklP
Дата добавления - 25.08.2013 в 17:31
RAN Дата: Воскресенье, 25.08.2013, 17:35 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата (SergeyKorotun, Воскресенье, 25.08.2013, 17:28 # 5)
Я забыл уточнить, что некоторых RowNum* может не быть.

"Не быть" бывают разные...
Так что вероятность работоспособности макроса равна вероятности встретить дракона на улице - либо "да", либо "нет".


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Цитата (SergeyKorotun, Воскресенье, 25.08.2013, 17:28 # 5)
Я забыл уточнить, что некоторых RowNum* может не быть.

"Не быть" бывают разные...
Так что вероятность работоспособности макроса равна вероятности встретить дракона на улице - либо "да", либо "нет".

Автор - RAN
Дата добавления - 25.08.2013 в 17:35
SergeyKorotun Дата: Вторник, 27.08.2013, 00:30 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 301
Репутация: 15 ±
Замечаний: 0% ±

Excel 2007
Вопрос в том, будет ли делать то, что хотца. Я ведь общей задачи не знаю.
Уже делает. Собирает некоректно импортированный xml файл, столбцы которого оказываются разбросанными по разных строкам листа в начало листа и ненужные строки удаляет. И хотя это лишь небольшая подзадача, но самая сложная. Еще раз спасибо. В приложении отчет.
К сообщению приложен файл: 1df_iz_xml.xlsm (33.1 Kb)
 
Ответить
Сообщение
Вопрос в том, будет ли делать то, что хотца. Я ведь общей задачи не знаю.
Уже делает. Собирает некоректно импортированный xml файл, столбцы которого оказываются разбросанными по разных строкам листа в начало листа и ненужные строки удаляет. И хотя это лишь небольшая подзадача, но самая сложная. Еще раз спасибо. В приложении отчет.

Автор - SergeyKorotun
Дата добавления - 27.08.2013 в 00:30
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!