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

Вход

Регистрация

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

 

= Мир MS Excel/Очистить ячейку где по формуле вышло число 1 - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Очистить ячейку где по формуле вышло число 1 (Макросы/Sub)
Очистить ячейку где по формуле вышло число 1
stalber Дата: Воскресенье, 18.12.2022, 22:45 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 347
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
Здравствуйте.

Очистить ячейку где по формуле вышло число 1, + удалить ячейку на 3 хода вправо.
Например в ячейке A1 число 1, нужно эту ячейку A1 очистить + очистить ещё D1
К сообщению приложен файл: voprosik1812.xlsx(8.6 Kb)
 
Ответить
СообщениеЗдравствуйте.

Очистить ячейку где по формуле вышло число 1, + удалить ячейку на 3 хода вправо.
Например в ячейке A1 число 1, нужно эту ячейку A1 очистить + очистить ещё D1

Автор - stalber
Дата добавления - 18.12.2022 в 22:45
Gustav Дата: Понедельник, 19.12.2022, 00:40 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2303
Репутация: 918 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
[vba]
Код
Sub io()
    Dim cell As Range
    For Each cell In Range("A1:C3").Cells
        If cell = 1 Then
            cell.ClearContents
            cell.Offset(0, 3).ClearContents
        End If
    Next cell
End Sub
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение[vba]
Код
Sub io()
    Dim cell As Range
    For Each cell In Range("A1:C3").Cells
        If cell = 1 Then
            cell.ClearContents
            cell.Offset(0, 3).ClearContents
        End If
    Next cell
End Sub
[/vba]

Автор - Gustav
Дата добавления - 19.12.2022 в 00:40
stalber Дата: Понедельник, 19.12.2022, 00:42 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 347
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
Подскажите пожалуйста, как использовать этот код, первый раз с этим сталкиваюсь
Можете пожалуйста вставить этот код в мой примерочный файл и скажите пожалуйста как его запустить


Сообщение отредактировал stalber - Понедельник, 19.12.2022, 00:44
 
Ответить
СообщениеПодскажите пожалуйста, как использовать этот код, первый раз с этим сталкиваюсь
Можете пожалуйста вставить этот код в мой примерочный файл и скажите пожалуйста как его запустить

Автор - stalber
Дата добавления - 19.12.2022 в 00:42
Gustav Дата: Понедельник, 19.12.2022, 00:48 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2303
Репутация: 918 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Alt+F11 \ Insert... Module \ копипаст отсюда \ после вставки в модуль встать в середину кода и нажать F5

P.S. И читать, читать, читать про Visual Basic for Applications: http://www.excelworld.ru/dir/code/vba/excel_macro/9-1-0-12


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Понедельник, 19.12.2022, 00:56
 
Ответить
СообщениеAlt+F11 \ Insert... Module \ копипаст отсюда \ после вставки в модуль встать в середину кода и нажать F5

P.S. И читать, читать, читать про Visual Basic for Applications: http://www.excelworld.ru/dir/code/vba/excel_macro/9-1-0-12

Автор - Gustav
Дата добавления - 19.12.2022 в 00:48
stalber Дата: Понедельник, 19.12.2022, 00:54 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 347
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
Чего то не получается, код красным подсвечен и ошибку выдал при нажатии на F5
К сообщению приложен файл: 9228381.jpg(30.8 Kb)
 
Ответить
СообщениеЧего то не получается, код красным подсвечен и ошибку выдал при нажатии на F5

Автор - stalber
Дата добавления - 19.12.2022 в 00:54
Gustav Дата: Понедельник, 19.12.2022, 01:04 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2303
Репутация: 918 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Нажмите по верхнему меню: Debug \ Compile VBAProject


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеНажмите по верхнему меню: Debug \ Compile VBAProject

Автор - Gustav
Дата добавления - 19.12.2022 в 01:04
stalber Дата: Понедельник, 19.12.2022, 01:06 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 347
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
Та же ошибка что на скриншоте выше выскочила. (syntax error)
Может ли быть дело что у меня excel 2007 старая версия?

Можете пожалуйста в моём файле внести код и сюда загрузить.


Сообщение отредактировал stalber - Понедельник, 19.12.2022, 01:09
 
Ответить
СообщениеТа же ошибка что на скриншоте выше выскочила. (syntax error)
Может ли быть дело что у меня excel 2007 старая версия?

Можете пожалуйста в моём файле внести код и сюда загрузить.

Автор - stalber
Дата добавления - 19.12.2022 в 01:06
Gustav Дата: Понедельник, 19.12.2022, 01:11 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2303
Репутация: 918 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Можете пожалуйста в моём файле внести код и сюда загрузить.

Давайте наоборот - Вы сохраните файл и выложите сюда, а я посмотрю в чём дело. Получится педагогичнее.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Можете пожалуйста в моём файле внести код и сюда загрузить.

Давайте наоборот - Вы сохраните файл и выложите сюда, а я посмотрю в чём дело. Получится педагогичнее.

Автор - Gustav
Дата добавления - 19.12.2022 в 01:11
stalber Дата: Понедельник, 19.12.2022, 01:17 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 347
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
Вот

Нажимаю на вид - макрос - выбираю макрос io но ничего не происходит, даёт ошибку syntax
К сообщению приложен файл: voprosik1812_22.xltm(13.3 Kb)


Сообщение отредактировал stalber - Понедельник, 19.12.2022, 01:18
 
Ответить
СообщениеВот

Нажимаю на вид - макрос - выбираю макрос io но ничего не происходит, даёт ошибку syntax

Автор - stalber
Дата добавления - 19.12.2022 в 01:17
Gustav Дата: Понедельник, 19.12.2022, 01:26 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 2303
Репутация: 918 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Какие-то начальные символы строки при копировании отсюда "фонят". Прогоните все красные строки клавишей Backspace до начала строки,
[vba]
Код
Sub io()
Dim cell As Range
For Each cell In Range("A1:C3").Cells
If cell = 1 Then
cell.ClearContents
cell.Offset(0, 3).ClearContents
End If
Next cell
End Sub
[/vba]
а потом клавишей Tab восстановите отступы. Должно полегчать!

И Вы завернули макросы в шаблонный файл с расширением .xlTm (потом могут быть проблемы), надо было попроще - .xlSm.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеКакие-то начальные символы строки при копировании отсюда "фонят". Прогоните все красные строки клавишей Backspace до начала строки,
[vba]
Код
Sub io()
Dim cell As Range
For Each cell In Range("A1:C3").Cells
If cell = 1 Then
cell.ClearContents
cell.Offset(0, 3).ClearContents
End If
Next cell
End Sub
[/vba]
а потом клавишей Tab восстановите отступы. Должно полегчать!

И Вы завернули макросы в шаблонный файл с расширением .xlTm (потом могут быть проблемы), надо было попроще - .xlSm.

Автор - Gustav
Дата добавления - 19.12.2022 в 01:26
stalber Дата: Понедельник, 19.12.2022, 01:30 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 347
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
Супер спасибо!!! =)))
Ещё одна просьба, как сделать наоборот, если в D1 1 то 3 ячейке влево то есть A1 стереть
 
Ответить
СообщениеСупер спасибо!!! =)))
Ещё одна просьба, как сделать наоборот, если в D1 1 то 3 ячейке влево то есть A1 стереть

Автор - stalber
Дата добавления - 19.12.2022 в 01:30
Gustav Дата: Понедельник, 19.12.2022, 01:44 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 2303
Репутация: 918 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Offset(0, 3) в другую сторону сделать, т.е. Offset(0, -3)
Ну и соответственно перебирать немного другие ячейки:
[vba]
Код
For Each cell In Range("D1:F3").Cells
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеOffset(0, 3) в другую сторону сделать, т.е. Offset(0, -3)
Ну и соответственно перебирать немного другие ячейки:
[vba]
Код
For Each cell In Range("D1:F3").Cells
[/vba]

Автор - Gustav
Дата добавления - 19.12.2022 в 01:44
stalber Дата: Понедельник, 19.12.2022, 01:46 | Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 347
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
СУПЕР!!! Огромное спасибо! =)))
 
Ответить
СообщениеСУПЕР!!! Огромное спасибо! =)))

Автор - stalber
Дата добавления - 19.12.2022 в 01:46
stalber Дата: Понедельник, 19.12.2022, 02:26 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 347
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
А как 2 кода соединить воедино??, чтобы не приходилось дважды кликать на 2 макроса.
[vba]
Код
Sub io()
Dim cell As Range
For Each cell In Range("A1:C3").Cells
If cell = 1 Then
cell.ClearContents
cell.Offset(0, 3).ClearContents
End If
Next cell
End Sub

Sub io()
Dim cell As Range
For Each cell In Range("D1:F3").Cells
If cell = 1 Then
cell.ClearContents
cell.Offset(0, -3).ClearContents
End If
Next cell
End Sub
[/vba]


Сообщение отредактировал stalber - Понедельник, 19.12.2022, 02:27
 
Ответить
СообщениеА как 2 кода соединить воедино??, чтобы не приходилось дважды кликать на 2 макроса.
[vba]
Код
Sub io()
Dim cell As Range
For Each cell In Range("A1:C3").Cells
If cell = 1 Then
cell.ClearContents
cell.Offset(0, 3).ClearContents
End If
Next cell
End Sub

Sub io()
Dim cell As Range
For Each cell In Range("D1:F3").Cells
If cell = 1 Then
cell.ClearContents
cell.Offset(0, -3).ClearContents
End If
Next cell
End Sub
[/vba]

Автор - stalber
Дата добавления - 19.12.2022 в 02:26
Gustav Дата: Понедельник, 19.12.2022, 11:08 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 2303
Репутация: 918 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
А как 2 кода соединить воедино?
Переименовать эти два в io1() и io2(), после чего написать третий и уже только одного его запускать:
[vba]
Код
Sub io3()
    io1
    io2
End Sub
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
А как 2 кода соединить воедино?
Переименовать эти два в io1() и io2(), после чего написать третий и уже только одного его запускать:
[vba]
Код
Sub io3()
    io1
    io2
End Sub
[/vba]

Автор - Gustav
Дата добавления - 19.12.2022 в 11:08
stalber Дата: Среда, 21.12.2022, 01:47 | Сообщение № 16
Группа: Проверенные
Ранг: Обитатель
Сообщений: 347
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
Подскажите пожалуйста, куда здесь вписать название листа? Иначе без названия, код работает на том листе на котором находишься.

[vba]
Код
Sub io()
Dim cell As Range
For Each cell In Range("A1:C3").Cells
If cell = 1 Then
cell.ClearContents
cell.Offset(0, 3).ClearContents
End If
Next cell
End Sub
[/vba]


Сообщение отредактировал Serge_007 - Среда, 21.12.2022, 09:25
 
Ответить
СообщениеПодскажите пожалуйста, куда здесь вписать название листа? Иначе без названия, код работает на том листе на котором находишься.

[vba]
Код
Sub io()
Dim cell As Range
For Each cell In Range("A1:C3").Cells
If cell = 1 Then
cell.ClearContents
cell.Offset(0, 3).ClearContents
End If
Next cell
End Sub
[/vba]

Автор - stalber
Дата добавления - 21.12.2022 в 01:47
Gustav Дата: Среда, 21.12.2022, 03:08 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 2303
Репутация: 918 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
[vba]
Код
For Each cell In Worksheets("Лист1").Range("A1:C3").Cells
[/vba]
И пора уже за букварь садиться и с объектной моделью Excel знакомиться, хотя бы с основными объектами, например, здесь. Там есть, например, такая цитата:
Цитата
Чтобы обратиться к объекту Excel (к листу, или ячейке) необходимо указать ссылку на этот объект, перечислив полный путь к нему в соответствии с объектной моделью.

Например, для ячейки A1 полная ссылка будет выглядеть следующим образом:

[vba]
Код
Application.Workbooks("Название книги").Worksheets("Название листа").Range("A1")
[/vba]
Цитата
На самом деле полный путь писать не обязательно. Application - можно практически всегда не указывать. Workbooks("Название книги") - можно не указывать, если необходимо обратиться к ячейке из активной книги, а Worksheets("Название листа") можно не писать в случае если код должен выполнять действия на активном листе. Т.е. в можно упростить до:

[vba]
Код
Range("A1")
[/vba]
Цитата
Но всегда имейте ввиду, что это будет ячейка на активном листе.


К сообщению приложен файл: 6924368.png(33.8 Kb)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение[vba]
Код
For Each cell In Worksheets("Лист1").Range("A1:C3").Cells
[/vba]
И пора уже за букварь садиться и с объектной моделью Excel знакомиться, хотя бы с основными объектами, например, здесь. Там есть, например, такая цитата:
Цитата
Чтобы обратиться к объекту Excel (к листу, или ячейке) необходимо указать ссылку на этот объект, перечислив полный путь к нему в соответствии с объектной моделью.

Например, для ячейки A1 полная ссылка будет выглядеть следующим образом:

[vba]
Код
Application.Workbooks("Название книги").Worksheets("Название листа").Range("A1")
[/vba]
Цитата
На самом деле полный путь писать не обязательно. Application - можно практически всегда не указывать. Workbooks("Название книги") - можно не указывать, если необходимо обратиться к ячейке из активной книги, а Worksheets("Название листа") можно не писать в случае если код должен выполнять действия на активном листе. Т.е. в можно упростить до:

[vba]
Код
Range("A1")
[/vba]
Цитата
Но всегда имейте ввиду, что это будет ячейка на активном листе.



Автор - Gustav
Дата добавления - 21.12.2022 в 03:08
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Очистить ячейку где по формуле вышло число 1 (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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