Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Удаление найденного диапазона / 19 сообщений из 19, страница 1 из 1
13.02.2010, 05:49
    #36467282
segail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
Здраствуйте
Подскажите правильный код
Как произвести удаление найденной строки переменной i столбца 26 удаление 31-ной ячейки (то есть все)

Cells(i, 26 & ":" & i + 30).Clear
...
Рейтинг: 0 / 0
13.02.2010, 10:31
    #36467332
segail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
segail,

Немного по-другому. Переменная (i) это найденная ячейка, от нее влево на -1 ячейку и вниз на 30 (включая все 30 ячеек с найденной ячейкой, значит 31) удалить.

Так что ли?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub ComboBox1_Change()

    
    Dim i As Integer
    
    For i =  1  To  1000 
        
        If Cells(i,  27 ).Text = ComboBox1.Text Then
        Rows(i, - 1  & ":" & i +  30 ).Select
        Selection.Delete Shift:=xlUp
        End If
    Next
End Sub
...
Рейтинг: 0 / 0
13.02.2010, 11:13
    #36467343
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
segail, отвечаю,насколько понял вопрос. Это надо?
Код: plaintext
1.
If Cells(i,  27 ).Text = ComboBox1.Text Then _
    Union(Cells(i,  27 ), Cells(i,  27 ).Offset(, - 1 ).Resize( 30 )).Delete Shift:=xlUp
...
Рейтинг: 0 / 0
13.02.2010, 11:27
    #36467348
segail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
vlth,

Данное условие If Cells(i, 27).Text = ComboBox1.Text Then нахождение нужной ячейки столбца 27 по совпадению текста с текстом ComboBox1.Text
Поле нахождения нужной ячейки переход в лево на одну от найденной и вниз на 30, то есть все 31, затем удалить.
...
Рейтинг: 0 / 0
13.02.2010, 11:52
    #36467362
segail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
segail,
Для полного понимания
...
Рейтинг: 0 / 0
13.02.2010, 11:55
    #36467365
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
segail, найденная ячейка удаляется? Или 31 - это ячейки в столбце слева от найденной?
...
Рейтинг: 0 / 0
13.02.2010, 11:56
    #36467367
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
Всё, последний вопрос снят - вижу.
...
Рейтинг: 0 / 0
13.02.2010, 11:58
    #36467370
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
If Cells(i, 27).Text = ComboBox1.Text Then _
Cells(i, 27).Offset(, -1).Resize(31).Delete Shift:=xlUp
...
Рейтинг: 0 / 0
13.02.2010, 12:01
    #36467371
segail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
vlthIf Cells(i, 27).Text = ComboBox1.Text Then _
Cells(i, 27).Offset(, -1).Resize(31).Delete Shift:=xlUp

Resize(31) наверное 30
в лево от найденной это превая и зо вниз уже 31???
...
Рейтинг: 0 / 0
13.02.2010, 12:08
    #36467376
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
segail, если боитесь удалить лишнее (да и для проверки, с тем ли диапазоном Вы работаете, в других случаях), выделяйте диапазон при тестировании своего кода
Код: plaintext
1.
If Cells(i,  27 ).Text = ComboBox1.Text Then _
    Cells(i,  27 ).Offset(, - 1 ).Resize( 31 ).Select
...
Рейтинг: 0 / 0
13.02.2010, 13:19
    #36467443
segail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
vlth,
При использования Select все нормально идет нужное выделение
При выполнении .Delete Shift:=xlUp идут сбои по основному коду ошибки в ячейках и так далее, короче не пойму в чем дело.
Может использовать Clear при Clear вроде все нормально
Код: plaintext
Cells(i,  27 ).Offset(, - 1 ).Resize( 31 ).Clear
Такой вариант нормальный?
...
Рейтинг: 0 / 0
13.02.2010, 13:23
    #36467447
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
segail, почему - нет? - конечно, нормальный вариант.
...
Рейтинг: 0 / 0
13.02.2010, 15:00
    #36467562
segail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
vlth,
А как проверить диапазон от минус 27 тридцать одну ячейку и если найдено значение больше “” то удалить данное значение (то есть удалять не полностью а выборочно).
Код: plaintext
If Cells(i,  27 ).Offset(, - 1 ).Resize( 31 ).Value>”” Then Cells(i,  27 ).Offset(, - 1 ).Resize( 31 ).Clear
...
Рейтинг: 0 / 0
13.02.2010, 18:19
    #36467731
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
segail, например, так:
Код: plaintext
Cells(i,  27 ).Offset(, - 1 ).Resize( 31 ).SpecialCells(xlCellTypeConstants).Clear
...
Рейтинг: 0 / 0
13.02.2010, 21:20
    #36467873
segail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
vlth,
Благодарю
...
Рейтинг: 0 / 0
14.02.2010, 17:23
    #36468530
segail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
segail,
Здравствуйте.
Подскажите как создать условие без переменной
1) .Cells(2, 27).Text Поиск ячейки с текстом со строки 2 по 444 столбца 27, по совпадению текста с ячейкой .Range("AA1").Text
2) Минус от найденной ячейки в лево, затем тридцать одну ячейку очистить.
.Cells(2, 27).Text = Sheets("Отчет").Range("AA1").Text Then .Cells(, 27).Offset(, -1).Resize(31) = ""
...
Рейтинг: 0 / 0
14.02.2010, 23:02
    #36468785
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
segail
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim oRange As Range
With Sheets("Отчет").Columns( 27 )
    If Not IsEmpty(.Cells( 1 ,  1 )) Then
        Set oRange = .Rows( 2  & ":" &  444 ).Find _
            (.Rows( 1 ), LookIn:=xlValues, LookAt:=xlWhole)
    End If
End With
If Not oRange Is Nothing Then oRange.Offset( 0 , - 1 ).Resize( 31 ) _
    .SpecialCells(xlConstants).Clear
Set oRange = Nothing
...
Рейтинг: 0 / 0
17.06.2010, 17:02
    #36693027
A_Cross
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
а как найти и удалить ячейку если слева и справа ее пусто?

Например в таблице Excel есть, ну допустим в ячейке С3 дата (01.02.2010), причём B3 и D3 пустые
и в ячейке К125 есть дата (05.06.2010), причем J125 и L125 также пустые.

Суть вопроса:подскажите код VBA чтобы найти в масиве данных(на листе) ячейку с датой причем в рядом находящихся ячейках справа и слева должна быть пустота(null)
...
Рейтинг: 0 / 0
17.06.2010, 17:05
    #36693041
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление найденного диапазона
A_Cross,

Перебрать все ячейки на предмет поиска даты.
проверять соседние можно с помощью .OffSet
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Удаление найденного диапазона / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]