Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Помогите разобраться с макросом в Excel

Ответить
Настройки темы
VBS/WSH/JS - [решено] Помогите разобраться с макросом в Excel

Новый участник


Сообщения: 29
Благодарности: 2

Профиль | Отправить PM | Цитировать


Есть очень простой макрос часть которого приведена ниже:
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 06.06.2011 (User)
'

'
Range("A2") = Range("A2") * Range("A1") / 10
Range("A3") = Range("A3") * Range("A1") / 10
Range("A4") = Range("A4") * Range("A1") / 10
Range("A5") = Range("A5") * Range("A1") / 10
Range("A6") = Range("A6") * Range("A1") / 10
Range("A7") = Range("A7") * Range("A1") / 10
Range("A8") = Range("A8") * Range("A1") / 10
End Sub
Вносятся данные в ячейки A1, A2, A3 ... После отработки макроса данные ячеек перезаписываются. Как видно все расчеты ссылаются на ячейку A1.
Так вот вопрос:
Можно ли, если можно, то как, сделать так что бы при условии что ячейка A1 не заполнена макрос не выполнял свою работу, ( шел переход на End Sub) а пользователю высвечивалось окошко предупреждения о не заполненной ячейки?
И вопрос второй:
Если к примеру ячейка A3 пустая то можно ли сделать так, что бы не выполнялось действие над этой ячейкой (ячейка оставалась пустая, расчет НЕ выполнялся), а шел переход на обработку следующей строчки?
Заранее благодарен.

Отправлено: 21:17, 06-06-2011

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата camope3:
при условии что ячейка A1 не заполнена макрос не выполнял свою работу, ( шел переход на End Sub) а пользователю высвечивалось окошко предупреждения о не заполненной ячейки? »
Код: Выделить весь код
If Not IsEmpty(Workbooks.Item(…).Worksheets.Item(…).Cells.Item(1, 1).Value) Then
    …
Else
   MsgBox "A1 is empty!"
End If
Цитата camope3:
Если к примеру ячейка A3 пустая то можно ли сделать так, »
Проверяйте аналогично примеру выше.

Отправлено: 01:04, 07-06-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 29
Благодарности: 2

Профиль | Отправить PM | Цитировать


Iska, Спасибо за совет! С пустыми ячейками разобрался, с всплывающим окошком тоже вот загвоздка з условием если ячейка A1 пустая завершение работы макроса.

If Not IsEmpty(Workbooks.Item(…).Worksheets.Item(…).Cells.Item(1, 1).Value) Then
Else
MsgBox "A1 is empty!"
End Sub
End If
Выкидывает ошибку компиляции, поправте пожалуйста.

Отправлено: 13:39, 07-06-2011 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Справка по тегам форума

Цитата camope3:
Выкидывает ошибку компиляции, поправте пожалуйста. »
Какую ошибку?

Я предполагал, что Вы немного знакомы с объектной моделью Microsoft Excel. Вместо:
Код: Выделить весь код
Workbooks.Item(…).Worksheets.Item(…)
Вы должны были любым способом указать Ваши данные — потребную рабочую книгу и потребный рабочий лист этой книги.

Отправлено: 16:02, 07-06-2011 | #4


Новый участник


Сообщения: 29
Благодарности: 2

Профиль | Отправить PM | Цитировать


С этим у меня проблем нету книгу и лист я указал естественно (не хотел замусоривать форум своими названиями), а ошибка: Block If без End If что как бы логично, только как это обойти? Повторюсь что все работает кроме этой зацепки.

Последний раз редактировалось camope3, 07-06-2011 в 17:27.


Отправлено: 17:21, 07-06-2011 | #5


Новый участник


Сообщения: 29
Благодарности: 2

Профиль | Отправить PM | Цитировать


Проблема решена:
Код: Выделить весь код
Sub User() 
If Range("A1") = "" Then 
MsgBox "Не заполнены ключевые данные!!!" 
End If 
If Range("A1") <> "" Then 
If Range("A2") <> "" Then 
Range("A2") = Range("A2") * Range("A1") / 10 
End If 
If Range("A3") <> "" Then
Range("A3") = Range("A3") * Range("A1") / 10 
End If 
End If 
End Sub
Никак не мог догадаться как сделать так, что бы не выполнялась процедура расчета при пустой ячейке А1. Оказалось что нужно было заключить в условие всю процедуру.

Последний раз редактировалось camope3, 08-06-2011 в 00:23.


Отправлено: 23:57, 07-06-2011 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Помогите разобраться с макросом в Excel

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - Помогите написать макрос в Excel, экспорт данных из Excel в Word. E.v.g Программирование и базы данных 7 03-05-2018 22:18
MySQL - Помогите разобраться Red Virus Программирование и базы данных 1 04-03-2008 21:39
Помогите разобраться blackrokk Автоматическая установка Windows 2000/XP/2003 2 09-08-2006 09:13
вставка формул в экселе макросом? Naug Программирование и базы данных 2 22-09-2004 15:47
помогите разобраться! Guest Общий по Linux 7 16-03-2004 21:45




 
Переход