Я тут неожиданно понял, что совсем ничего не понял...
Мне надо сделать так....
создать кнопку на Лист1, что бы при нажатии на неё Excel переходил на Лист2, с результатами..
т.е. к примеру на Лист1 написано "Введите А и введите В, для уравнения А+В, и нажмите ОК"
мы вводим А=2, В=5, и нажимаем ОК....
И на Лист2 мы видим ответ....Т.Е.(!!!) мы не сами переходим на Лист2, а нас кнопочка эта "перебрасывает", смекаете?
Другие языки программирования и технологии
пишу макрос в Excel, есть вопрос, помогите(2)
Чего парню мозги полоскать объектными моделями и проТчим?.. .
VBA тем и хорош, что начинать работать в нём можно без всяких теорий методом тыка и рекордера
Осознание необходимости лезть в теорию и в хэлпы придёт потом в процессе решения более сложных задач
Короче, кнопочку ты рисовать уже умеешь, как я понимаю, значит, знаешь и что такое "Режим конструктора", включив который всё и делаем
Щелкни по ней два раза и перейдёшь в Редактор VBA, где тебе уже нарисовалась заготовка макроса для твоей кнопки
Из заголовка с именем макроса Private Sub...и т. д. и финальным End Sub
Теперь пиши между ними, что же ты хочешь чтобы тебе кнопка сделала
Считать A и B из каких-то ячеек Листа1 (A1 и В1, к примеру) ?
Так и пиши:
A = Sheets("Лист1").Range("A1")
B = Sheets("Лист1").Range("B1")
Надо получить их сумму (к примеру назовем её S)?
S = A + B
Воткнуть результат в ячейку А1 Листа2
Sheets("Лист2").Range("A1").Formula = S
Перейти на Лист2
Sheets("Лист2").Activate
Всё
В принципе, все эти переменные А, В, S они здесь так, для наглядности
Можно и без них, и весь код займёт 2 строчки
Вместе с шапкой это будет выглядеть так:
Private Sub CommandButton1_Click()
Sheets("Лист2").Range("A1").Formula = Sheets("Лист1").Range("A1").Value + Sheets("Лист1").Range("B1").Value
Sheets("Лист2").Activate
End Sub
А для теории, грубо:
Всё, над чем мы производим действия - Объекты (Objects). У нас Листы (Sheets), диапазоны ячеек (Range)
Они как-то именуются, это мы в скобочках и кавычках пишем
У них есть Свойства (Property), к которым мы обращаемся. У нас Value (Значение, то, что в ячейке видно) , Formula (Формула, то, что мы в ячейке пишем)
Ну, и мы что-то с объектами делаем - применяем Метод (method). У нас это Activate
Вот и вся теория на первом этапе
Будешь писать, тебе редактор будет подсказывать, какие свойства и методы применимы к твоему объекту
Их действия в большинстве понятны из самих названий (правда, по-аглицки, но пару десятков слов не сложно и выучить, если и не знаешь)
Что не понятно - Хелп всегда с тобою
Полезно использовать Рекордер, чтобы посмотреть какие твои действия как записываются
Но не ведись на ту адресацию, которая там записывается
Там всё больше пишется про то, что ты выбираешь (Selection, Active и т. п.) , лучше адресовать в прямую, как мы уже делали. А активировать ячейки, выбирать диапазоны и т. п лучше осознанно, понимая, что именно это тебе нужно.
VBA тем и хорош, что начинать работать в нём можно без всяких теорий методом тыка и рекордера
Осознание необходимости лезть в теорию и в хэлпы придёт потом в процессе решения более сложных задач
Короче, кнопочку ты рисовать уже умеешь, как я понимаю, значит, знаешь и что такое "Режим конструктора", включив который всё и делаем
Щелкни по ней два раза и перейдёшь в Редактор VBA, где тебе уже нарисовалась заготовка макроса для твоей кнопки
Из заголовка с именем макроса Private Sub...и т. д. и финальным End Sub
Теперь пиши между ними, что же ты хочешь чтобы тебе кнопка сделала
Считать A и B из каких-то ячеек Листа1 (A1 и В1, к примеру) ?
Так и пиши:
A = Sheets("Лист1").Range("A1")
B = Sheets("Лист1").Range("B1")
Надо получить их сумму (к примеру назовем её S)?
S = A + B
Воткнуть результат в ячейку А1 Листа2
Sheets("Лист2").Range("A1").Formula = S
Перейти на Лист2
Sheets("Лист2").Activate
Всё
В принципе, все эти переменные А, В, S они здесь так, для наглядности
Можно и без них, и весь код займёт 2 строчки
Вместе с шапкой это будет выглядеть так:
Private Sub CommandButton1_Click()
Sheets("Лист2").Range("A1").Formula = Sheets("Лист1").Range("A1").Value + Sheets("Лист1").Range("B1").Value
Sheets("Лист2").Activate
End Sub
А для теории, грубо:
Всё, над чем мы производим действия - Объекты (Objects). У нас Листы (Sheets), диапазоны ячеек (Range)
Они как-то именуются, это мы в скобочках и кавычках пишем
У них есть Свойства (Property), к которым мы обращаемся. У нас Value (Значение, то, что в ячейке видно) , Formula (Формула, то, что мы в ячейке пишем)
Ну, и мы что-то с объектами делаем - применяем Метод (method). У нас это Activate
Вот и вся теория на первом этапе
Будешь писать, тебе редактор будет подсказывать, какие свойства и методы применимы к твоему объекту
Их действия в большинстве понятны из самих названий (правда, по-аглицки, но пару десятков слов не сложно и выучить, если и не знаешь)
Что не понятно - Хелп всегда с тобою
Полезно использовать Рекордер, чтобы посмотреть какие твои действия как записываются
Но не ведись на ту адресацию, которая там записывается
Там всё больше пишется про то, что ты выбираешь (Selection, Active и т. п.) , лучше адресовать в прямую, как мы уже делали. А активировать ячейки, выбирать диапазоны и т. п лучше осознанно, понимая, что именно это тебе нужно.
Через запись сделать не пробовал?
что за дъявольский сайт? О_О
Дмитрий Дурченко
а что не так?
Похожие вопросы
- Необходимо создать макрос для excel
- Вопрос по макросам MS Excel
- Макрос для excel - VBA (гиперссылка)
- Нужна помощь с написанием макроса в Excel.
- Вопрос по vba макросам в excel(внутри).
- люди подскажите пожалуйста, как в двух файлах excel найти совпадения????помогите очень нужно!!!
- Пипец как мучает вопрос, помогите !
- СЛОЖНА! С++ Начал читать про указатели. Скопилось куча вопросов. Помогите!
- Срочно!!! Не займет много времени!!! Ломаю голову над вопросом, Помогите!!! Программа. Pascal. Паскаль
- Excel. Макрос. Найти в Листе1 значение активной ячейки из Листа2.
мне надо макрос записать для Лист1, а потом ещё и для Лист2 ..?
И что бы при нажатии на кнопку переходило на второй макрос?
или надо одну запись делать делать на оба листа? Лист 1 и Лист2 ...