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

 

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

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

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

Очистить ячейку где по формуле вышло число 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
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1

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



МОИ: Ник, 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 cellEnd Sub
[/vba]

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

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


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

Автор - stalber
Дата добавления - 19.12.2022 в 00:42
Gustav Дата: Понедельник, 19.12.2022, 00:48 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с 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
Группа: Проверенные
Ранг: Обитатель
Сообщений: 371
Репутация: 7 ±
Замечаний: 40% ±

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

Автор - stalber
Дата добавления - 19.12.2022 в 00:54
Gustav Дата: Понедельник, 19.12.2022, 01:04 | Сообщение № 6
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с 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
Группа: Проверенные
Ранг: Обитатель
Сообщений: 371
Репутация: 7 ±
Замечаний: 40% ±

Excel 2021
Та же ошибка что на скриншоте выше выскочила. (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
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Цитата stalber, 19.12.2022 в 01:06, в сообщении № 7 ( писал(а)):
Можете пожалуйста в моём файле внести код и сюда загрузить.

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


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

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

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

Excel 2021
Вот

Нажимаю на вид - макрос - выбираю макрос 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
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Какие-то начальные символы строки при копировании отсюда "фонят". Прогоните все красные строки клавишей Backspace до начала строки,

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


а потом клавишей Tab восстановите отступы. Должно полегчать!

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


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

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

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

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

Автор - stalber
Дата добавления - 19.12.2022 в 01:30
Gustav Дата: Понедельник, 19.12.2022, 01:44 | Сообщение № 12
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Offset(0, 3) в другую сторону сделать, т.е. Offset(0, -3)
Ну и соответственно перебирать немного другие ячейки:

For Each cell In Range("D1:F3").Cells



МОИ: Ник, 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
Группа: Проверенные
Ранг: Обитатель
Сообщений: 371
Репутация: 7 ±
Замечаний: 40% ±

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

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

Excel 2021
А как 2 кода соединить воедино??, чтобы не приходилось дважды кликать на 2 макроса.

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



Сообщение отредактировал stalber - Понедельник, 19.12.2022, 02:27
 
Ответить
СообщениеА как 2 кода соединить воедино??, чтобы не приходилось дважды кликать на 2 макроса.
[vba]
Sub io()Dim cell As RangeFor Each cell In Range("A1:C3").CellsIf cell = 1 Тhencell.ClearContentscell.Offset(0; 3).ClearContentsEnd IfNext cellEnd SubSub io()Dim cell As RangeFor Each cell In Range("D1:F3").CellsIf cell = 1 Тhencell.ClearContentscell.Offset(0; -3).ClearContentsEnd IfNext cellEnd Sub
[/vba]

Автор - stalber
Дата добавления - 19.12.2022 в 02:26
Gustav Дата: Понедельник, 19.12.2022, 11:08 | Сообщение № 15
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Цитата stalber, 19.12.2022 в 02:26, в сообщении № 14 ( писал(а)):
А как 2 кода соединить воедино?
Переименовать эти два в io1() и io2(), после чего написать третий и уже только одного его запускать:

Sub io3()
    io1
    io2
End Sub



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

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

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

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



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

[vba]
Sub io()Dim cell As RangeFor Each cell In Range("A1:C3").CellsIf cell = 1 Тhencell.ClearContentscell.Offset(0; 3).ClearContentsEnd IfNext cellEnd Sub
[/vba]

Автор - stalber
Дата добавления - 21.12.2022 в 01:47
Gustav Дата: Среда, 21.12.2022, 03:08 | Сообщение № 17
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1

For Each cell In Worksheets("Лист1").Range("A1:C3").Cells


И пора уже за букварь садиться и с объектной моделью Excel знакомиться, хотя бы с основными объектами, например, здесь. Там есть, например, такая цитата:
Цитата
Чтобы обратиться к объекту Excel (к листу, или ячейке) необходимо указать ссылку на этот объект, перечислив полный путь к нему в соответствии с объектной моделью.

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

Application.Workbooks("Название книги").Worksheets("Название листа").Range("A1")


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

Range("A1")


Цитата
Но всегда имейте ввиду, что это будет ячейка на активном листе.


К сообщению приложен файл: 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
  • Страница 1 из 1
  • 1
Поиск:

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