Бесконечный цикл
Kinder
Дата: Воскресенье, 08.12.2013, 18:01 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 77
Репутация:
0
±
Замечаний:
0% ±
Добрый вечер. Подскажите пожалуйста где ошибка? Либо уходит в бесконечный цикл либо выходит ошибка. Что надо получить: В столбце "С:С" есть данные, н/р "С1:С10" все ячейки заполнены. В "С11" пустая ячейка. Надо выделить "С1:С10" Спасибо! Макрос взят на этом сайте и чуть переделан. [vba]Код
Dim a1 As String ' верхний адрес Dim a2 As String ' нижний адрес Dim ran As Range ' в диапазоне If (PN.Range("C1").Value = "") Then ' если верхняя пустая ActiveCell.Offset(1, 0).Select ' пойти в низ a1 = ActiveCell.Address ' взять адрес ячейки End If For x = 1 To (ActiveCell.Row + 1) ' будем опускатся ActiveCell.Offset(1, 3).Select ' на одну вниз ActiveCell.Offset(1, 3).Select ' на одну вниз If (ActiveCell.Value) = "" Then ' если пустая ActiveCell.Offset(-1, 3).Select ' на одну вверх a2 = ActiveCell.Address ' получаем адрес нижней End If Next Set ran = Range(a1 + ":" + a2) ' строим диапазон ran.Select ' выбеляем
[/vba]
Добрый вечер. Подскажите пожалуйста где ошибка? Либо уходит в бесконечный цикл либо выходит ошибка. Что надо получить: В столбце "С:С" есть данные, н/р "С1:С10" все ячейки заполнены. В "С11" пустая ячейка. Надо выделить "С1:С10" Спасибо! Макрос взят на этом сайте и чуть переделан. [vba]Код
Dim a1 As String ' верхний адрес Dim a2 As String ' нижний адрес Dim ran As Range ' в диапазоне If (PN.Range("C1").Value = "") Then ' если верхняя пустая ActiveCell.Offset(1, 0).Select ' пойти в низ a1 = ActiveCell.Address ' взять адрес ячейки End If For x = 1 To (ActiveCell.Row + 1) ' будем опускатся ActiveCell.Offset(1, 3).Select ' на одну вниз ActiveCell.Offset(1, 3).Select ' на одну вниз If (ActiveCell.Value) = "" Then ' если пустая ActiveCell.Offset(-1, 3).Select ' на одну вверх a2 = ActiveCell.Address ' получаем адрес нижней End If Next Set ran = Range(a1 + ":" + a2) ' строим диапазон ran.Select ' выбеляем
[/vba] Kinder
"И все таки она вертится!"
Ответить
Сообщение Добрый вечер. Подскажите пожалуйста где ошибка? Либо уходит в бесконечный цикл либо выходит ошибка. Что надо получить: В столбце "С:С" есть данные, н/р "С1:С10" все ячейки заполнены. В "С11" пустая ячейка. Надо выделить "С1:С10" Спасибо! Макрос взят на этом сайте и чуть переделан. [vba]Код
Dim a1 As String ' верхний адрес Dim a2 As String ' нижний адрес Dim ran As Range ' в диапазоне If (PN.Range("C1").Value = "") Then ' если верхняя пустая ActiveCell.Offset(1, 0).Select ' пойти в низ a1 = ActiveCell.Address ' взять адрес ячейки End If For x = 1 To (ActiveCell.Row + 1) ' будем опускатся ActiveCell.Offset(1, 3).Select ' на одну вниз ActiveCell.Offset(1, 3).Select ' на одну вниз If (ActiveCell.Value) = "" Then ' если пустая ActiveCell.Offset(-1, 3).Select ' на одну вверх a2 = ActiveCell.Address ' получаем адрес нижней End If Next Set ran = Range(a1 + ":" + a2) ' строим диапазон ran.Select ' выбеляем
[/vba] Автор - Kinder Дата добавления - 08.12.2013 в 18:01
doober
Дата: Воскресенье, 08.12.2013, 18:23 |
Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 995
Репутация:
345
±
Замечаний:
0% ±
Excel 2010
А если так? [vba]Код
LastRow1 = PN.Cells(PN.Rows.Count, 3).SpecialCells(xlCellTypeConstants).Row LastRow2 = PN.Cells(PN.Rows.Count, 3).End(xlUp).Row PN.Range("C" & LastRow1 & ":C" & LastRow2).Select
[/vba] Вспомнил муху и слона
А если так? [vba]Код
LastRow1 = PN.Cells(PN.Rows.Count, 3).SpecialCells(xlCellTypeConstants).Row LastRow2 = PN.Cells(PN.Rows.Count, 3).End(xlUp).Row PN.Range("C" & LastRow1 & ":C" & LastRow2).Select
[/vba] Вспомнил муху и слона doober
Сообщение отредактировал doober - Воскресенье, 08.12.2013, 18:25
Ответить
Сообщение А если так? [vba]Код
LastRow1 = PN.Cells(PN.Rows.Count, 3).SpecialCells(xlCellTypeConstants).Row LastRow2 = PN.Cells(PN.Rows.Count, 3).End(xlUp).Row PN.Range("C" & LastRow1 & ":C" & LastRow2).Select
[/vba] Вспомнил муху и слона Автор - doober Дата добавления - 08.12.2013 в 18:23
Kinder
Дата: Воскресенье, 08.12.2013, 18:52 |
Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 77
Репутация:
0
±
Замечаний:
0% ±
Спасибо за ответ!!! Попытался запустить и ничего не произошло. Может надо LastRow1 LastRow2 объявить как String?
Спасибо за ответ!!! Попытался запустить и ничего не произошло. Может надо LastRow1 LastRow2 объявить как String? Kinder
"И все таки она вертится!"
Ответить
Сообщение Спасибо за ответ!!! Попытался запустить и ничего не произошло. Может надо LastRow1 LastRow2 объявить как String? Автор - Kinder Дата добавления - 08.12.2013 в 18:52
Kinder
Дата: Воскресенье, 08.12.2013, 18:59 |
Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 77
Репутация:
0
±
Замечаний:
0% ±
Я извиняюсь. Работает! Только я не правильно объяснил((. После пустой ячейки "А11" есть не пустые ячейки. Ваш вариант выделяет все вплоть до последеней. То есть "А1:А80" А надо чтобы до 1-й пустой. Спасибо!
Я извиняюсь. Работает! Только я не правильно объяснил((. После пустой ячейки "А11" есть не пустые ячейки. Ваш вариант выделяет все вплоть до последеней. То есть "А1:А80" А надо чтобы до 1-й пустой. Спасибо! Kinder
"И все таки она вертится!"
Ответить
Сообщение Я извиняюсь. Работает! Только я не правильно объяснил((. После пустой ячейки "А11" есть не пустые ячейки. Ваш вариант выделяет все вплоть до последеней. То есть "А1:А80" А надо чтобы до 1-й пустой. Спасибо! Автор - Kinder Дата добавления - 08.12.2013 в 18:59
Wasilich
Дата: Воскресенье, 08.12.2013, 21:28 |
Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация:
326
±
Замечаний:
0% ±
2003
В столбце "С:С" есть данные, н/р "С1:С10" все ячейки заполнены. В "С11" пустая ячейка. Надо выделить "С1:С10"
После пустой ячейки "А11" есть не пустые ячейки.
Что то не понятно, все таки в С или в А? И в чем загвоздка? Что конкретно нужно? Просто найти пустую ячейку начиная с С1 и выделить диапазон С1:С10? Или есть еще какие то условия. Поконкретнее выражовуйтесь.
В столбце "С:С" есть данные, н/р "С1:С10" все ячейки заполнены. В "С11" пустая ячейка. Надо выделить "С1:С10"
После пустой ячейки "А11" есть не пустые ячейки.
Что то не понятно, все таки в С или в А? И в чем загвоздка? Что конкретно нужно? Просто найти пустую ячейку начиная с С1 и выделить диапазон С1:С10? Или есть еще какие то условия. Поконкретнее выражовуйтесь. Wasilich
Ответить
Сообщение В столбце "С:С" есть данные, н/р "С1:С10" все ячейки заполнены. В "С11" пустая ячейка. Надо выделить "С1:С10"
После пустой ячейки "А11" есть не пустые ячейки.
Что то не понятно, все таки в С или в А? И в чем загвоздка? Что конкретно нужно? Просто найти пустую ячейку начиная с С1 и выделить диапазон С1:С10? Или есть еще какие то условия. Поконкретнее выражовуйтесь. Автор - Wasilich Дата добавления - 08.12.2013 в 21:28
doober
Дата: Воскресенье, 08.12.2013, 21:47 |
Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 995
Репутация:
345
±
Замечаний:
0% ±
Excel 2010
Последний подход к штанге. [vba]Код
Dim X As Range For Each X In PN.Cells(PN.Rows.Count, 3).SpecialCells(xlCellTypeConstants).Areas MsgBox X.Address Next
[/vba]
Последний подход к штанге. [vba]Код
Dim X As Range For Each X In PN.Cells(PN.Rows.Count, 3).SpecialCells(xlCellTypeConstants).Areas MsgBox X.Address Next
[/vba] doober
Ответить
Сообщение Последний подход к штанге. [vba]Код
Dim X As Range For Each X In PN.Cells(PN.Rows.Count, 3).SpecialCells(xlCellTypeConstants).Areas MsgBox X.Address Next
[/vba] Автор - doober Дата добавления - 08.12.2013 в 21:47
alex77755
Дата: Понедельник, 09.12.2013, 01:20 |
Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация:
64
±
Замечаний:
0% ±
[vba]Код
Range("A1:A" & Range("A1").End(xlDown)).Select
[/vba]
[vba]Код
Range("A1:A" & Range("A1").End(xlDown)).Select
[/vba] alex77755
Могу помочь в VB6, VBA Alex77755@mail.ru
Ответить
Сообщение [vba]Код
Range("A1:A" & Range("A1").End(xlDown)).Select
[/vba] Автор - alex77755 Дата добавления - 09.12.2013 в 01:20