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

Вход

Регистрация

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

 

= Мир MS Excel/Ограничение рабочего диапазона - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ограничение рабочего диапазона (Макросы/Sub)
Ограничение рабочего диапазона
tasdel Дата: Воскресенье, 15.08.2021, 13:23 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Здравствуйте уважаемые колдуны и шаманы!
Имеется простенький макрос, который ищет равенство от активной ячейки в нужном диапазоне ActiveSheet.Range("B12:AH18"). Беда в том, что этот макрос срабатывает за пределами этого диапазона.
Не знаю как победить этот недуг.

[vba]
Код
If ActiveCell.Offset(-1, 0) = ActiveCell Then
ActiveCell.Offset(-1, 0) = ""
   End If

If ActiveCell.Offset(-2, 0) = ActiveCell Then
ActiveCell.Offset(-2, 0) = ""

End If

If ActiveCell.Offset(-3, 0) = ActiveCell Then
ActiveCell.Offset(-3, 0) = ""
   End If
   
If ActiveCell.Offset(-4, 0) = ActiveCell Then
ActiveCell.Offset(-4, 0) = ""
   End If
  
If ActiveCell.Offset(-5, 0) = ActiveCell Then
ActiveCell.Offset(-5, 0) = ""
   End If
   
If ActiveCell.Offset(-6, 0) = ActiveCell Then
ActiveCell.Offset(-6, 0) = ""
   End If
[/vba]
 
Ответить
СообщениеЗдравствуйте уважаемые колдуны и шаманы!
Имеется простенький макрос, который ищет равенство от активной ячейки в нужном диапазоне ActiveSheet.Range("B12:AH18"). Беда в том, что этот макрос срабатывает за пределами этого диапазона.
Не знаю как победить этот недуг.

[vba]
Код
If ActiveCell.Offset(-1, 0) = ActiveCell Then
ActiveCell.Offset(-1, 0) = ""
   End If

If ActiveCell.Offset(-2, 0) = ActiveCell Then
ActiveCell.Offset(-2, 0) = ""

End If

If ActiveCell.Offset(-3, 0) = ActiveCell Then
ActiveCell.Offset(-3, 0) = ""
   End If
   
If ActiveCell.Offset(-4, 0) = ActiveCell Then
ActiveCell.Offset(-4, 0) = ""
   End If
  
If ActiveCell.Offset(-5, 0) = ActiveCell Then
ActiveCell.Offset(-5, 0) = ""
   End If
   
If ActiveCell.Offset(-6, 0) = ActiveCell Then
ActiveCell.Offset(-6, 0) = ""
   End If
[/vba]

Автор - tasdel
Дата добавления - 15.08.2021 в 13:23
bmv98rus Дата: Воскресенье, 15.08.2021, 14:22 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4098
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
ну все эти строки можно немного копактнее записать
[vba]
Код
for i = -1 to -6 step -1
With activecell
If .Offset(I, 0) = .value Then .Offset(I, 0).cearcontents
end with
next
[/vba]
но
макрос срабатывает за пределами этого диапазона
- то поясните. за пределы диапазон не долна выходить активнпая ячейка или остальные ячейки должны лежать в этом диапазоне?


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениену все эти строки можно немного копактнее записать
[vba]
Код
for i = -1 to -6 step -1
With activecell
If .Offset(I, 0) = .value Then .Offset(I, 0).cearcontents
end with
next
[/vba]
но
макрос срабатывает за пределами этого диапазона
- то поясните. за пределы диапазон не долна выходить активнпая ячейка или остальные ячейки должны лежать в этом диапазоне?

Автор - bmv98rus
Дата добавления - 15.08.2021 в 14:22
tasdel Дата: Воскресенье, 15.08.2021, 15:18 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
bmv98rus, Я загрузил файл. Желтым цветом залит рабочий диапазон. Удалите ячейки выделенные красным цветом и Вы увидите, что будут удалятся схожие значения за пределами диапазона. Спасибо за ответ.
К сообщению приложен файл: 7505270.xls (37.0 Kb)
 
Ответить
Сообщениеbmv98rus, Я загрузил файл. Желтым цветом залит рабочий диапазон. Удалите ячейки выделенные красным цветом и Вы увидите, что будут удалятся схожие значения за пределами диапазона. Спасибо за ответ.

Автор - tasdel
Дата добавления - 15.08.2021 в 15:18
bmv98rus Дата: Воскресенье, 15.08.2021, 15:41 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4098
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
так
[vba]
Код
If Not Intersect(ActiveCell, Range("b13:ah18")) Is Nothing Then
With ActiveCell
For Each cell In Range(Cells(12, .Column), .Offset(-1))
    If cell = .Value Then cell.ClearContents
Next
End With
End If
[/vba]
или так
[vba]
Код
If Not Intersect(ActiveCell, Range("b13:ah18")) Is Nothing Then
With ActiveCell
Range(Cells(12, .Column), .Offset(-1)).Replace what:=.Value, Replacement:="", lookat:=xlWhole
End With
End If
[/vba]


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Воскресенье, 15.08.2021, 15:47
 
Ответить
Сообщениетак
[vba]
Код
If Not Intersect(ActiveCell, Range("b13:ah18")) Is Nothing Then
With ActiveCell
For Each cell In Range(Cells(12, .Column), .Offset(-1))
    If cell = .Value Then cell.ClearContents
Next
End With
End If
[/vba]
или так
[vba]
Код
If Not Intersect(ActiveCell, Range("b13:ah18")) Is Nothing Then
With ActiveCell
Range(Cells(12, .Column), .Offset(-1)).Replace what:=.Value, Replacement:="", lookat:=xlWhole
End With
End If
[/vba]

Автор - bmv98rus
Дата добавления - 15.08.2021 в 15:41
tasdel Дата: Воскресенье, 15.08.2021, 15:45 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Цитата
Цитата
ну все эти строки можно немного копактнее записать

Я знаю азы vba, ну и на этом собственно можно поставить точку. В принципе мне этого хватает, но бывают моменты, когда я вхожу в ступор.
 
Ответить
Сообщение
Цитата
Цитата
ну все эти строки можно немного копактнее записать

Я знаю азы vba, ну и на этом собственно можно поставить точку. В принципе мне этого хватает, но бывают моменты, когда я вхожу в ступор.

Автор - tasdel
Дата добавления - 15.08.2021 в 15:45
tasdel Дата: Воскресенье, 15.08.2021, 16:26 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
bmv98rus, Спасибо большое , все работает, но не до конца. Я приложу еще файл, чтобы Вы поняли основной принцип этих манипуляций. Введите пожалуйста в зеленые ячейки числа, которые соответствуют числам в красных ячейках, затем введите в красные ячейки числа, которые соответствуют числам в зеленых ячейках.
Заранее благодарен.
К сообщению приложен файл: 6180344.xls (37.0 Kb)
 
Ответить
Сообщениеbmv98rus, Спасибо большое , все работает, но не до конца. Я приложу еще файл, чтобы Вы поняли основной принцип этих манипуляций. Введите пожалуйста в зеленые ячейки числа, которые соответствуют числам в красных ячейках, затем введите в красные ячейки числа, которые соответствуют числам в зеленых ячейках.
Заранее благодарен.

Автор - tasdel
Дата добавления - 15.08.2021 в 16:26
bmv98rus Дата: Воскресенье, 15.08.2021, 16:30 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4098
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
tasdel, вы просто поясните что нужно сделать, я предположил, что в ячейках того же столбца он 12 строки до строки активной ячейки (исключая) удалить значение.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениеtasdel, вы просто поясните что нужно сделать, я предположил, что в ячейках того же столбца он 12 строки до строки активной ячейки (исключая) удалить значение.

Автор - bmv98rus
Дата добавления - 15.08.2021 в 16:30
tasdel Дата: Воскресенье, 15.08.2021, 16:52 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
bmv98rus, Я меня не получится Вам объяснить на словах т.к. могу еще больше Вас ввести в заблуждение, поэтому я приложил файл. Файл имеет код, который выполняет поставленную задачу,но проблема в том, что макрос может удалять идентичные числа за пределами рабочего диапазона.
 
Ответить
Сообщениеbmv98rus, Я меня не получится Вам объяснить на словах т.к. могу еще больше Вас ввести в заблуждение, поэтому я приложил файл. Файл имеет код, который выполняет поставленную задачу,но проблема в том, что макрос может удалять идентичные числа за пределами рабочего диапазона.

Автор - tasdel
Дата добавления - 15.08.2021 в 16:52
tasdel Дата: Воскресенье, 15.08.2021, 17:10 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
bmv98rus, Вы написали макрос, который удаляет числа - это первая половина кода, вторая половина кода - вернуть эти числа назад.
 
Ответить
Сообщениеbmv98rus, Вы написали макрос, который удаляет числа - это первая половина кода, вторая половина кода - вернуть эти числа назад.

Автор - tasdel
Дата добавления - 15.08.2021 в 17:10
bmv98rus Дата: Воскресенье, 15.08.2021, 18:38 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4098
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
tasdel, вы просто поясните что нужно сделать,


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Воскресенье, 15.08.2021, 18:38
 
Ответить
Сообщение
tasdel, вы просто поясните что нужно сделать,

Автор - bmv98rus
Дата добавления - 15.08.2021 в 18:38
tasdel Дата: Воскресенье, 15.08.2021, 22:37 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
bmv98rus, Нашел у себя небольшую ошибку. Все работает. Спасибо за помощь.


Сообщение отредактировал tasdel - Понедельник, 16.08.2021, 01:02
 
Ответить
Сообщениеbmv98rus, Нашел у себя небольшую ошибку. Все работает. Спасибо за помощь.

Автор - tasdel
Дата добавления - 15.08.2021 в 22:37
bmv98rus Дата: Понедельник, 16.08.2021, 13:34 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4098
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Нашел у себя небольшую ошибку
основная ошибка в том, что вы путались показать код не описывая что хотите сделать. Но если получилось, то ок.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
Нашел у себя небольшую ошибку
основная ошибка в том, что вы путались показать код не описывая что хотите сделать. Но если получилось, то ок.

Автор - bmv98rus
Дата добавления - 16.08.2021 в 13:34
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ограничение рабочего диапазона (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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