|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.05.2010, 14:42 | #1 |
Пользователь
Регистрация: 28.04.2010
Сообщений: 40
|
Создать кнопку
Как в VBA сделать кнопку, которая будет копировать данные из ячеек excel в другую программу?
И подскажите пожалуйста ресурс, посвященный VBA(надо изучить) |
01.05.2010, 22:26 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
см. вложение - сделана такая кнопка.
у нее есть три недостатка: 1. копирует что попало 2. куда попало 3. вообще не копирует в калькулятор - если в исходной ячейке буква
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
03.05.2010, 00:49 | #3 |
Пользователь
Регистрация: 02.05.2010
Сообщений: 26
|
Можно использовать буффер обмена
Доступные форматы для содержимого буфера обмена можно выбрать командой меню View (Вид) программы CLIPBRD.EXE. Доступ к буферу обмена Windows из приложения Visual Basic обеспечивает объект Clipboard. Метод SetText Метод SetText записывает текстовую строку в буфер обмена и заменяет текущее содержимое буфера. При этом существует возможность определить формат строки, хранимой в буфере: Clipboard.SetText text[, format] Скопировать содержимое выделенного текстового поля (TextBox) в буфер обмена можно следующим оператором: Clipboard.SetText Textl.Text В Excel придется подключить созданный в VB6 clsExcel_1.dll Excel >VBA > Tools > References > Browse > скопированный фаил clsExcel_1.dll > Ok Public Sub Буфер_кнопка() Dim clsBuf As clsExcel_1.Cell_Excel Set clsBuf = New clsExcel_1.Cell_Excel Set clsBuf.ExcelApp = Application Range("B2").Activate clsBuf.BuferVB Set clsBuf = Nothing End Sub Также можно переносить и графику, но необходимо переписать dll. код простой но почемуто в VBA не идет. Последний раз редактировалось Алексей Трошкин; 03.05.2010 в 00:57. Причина: Добален пример Excel |
06.05.2010, 00:47 | #4 |
Пользователь
Регистрация: 28.04.2010
Сообщений: 40
|
IgorGO и Алексей Трошкин
а как вы эти кнопки создали сами? в visual basic? если да, то как их "привязали" к экселю? IgorGO не мог ли ты поподробнее рассказать про код? |
06.05.2010, 02:23 | #5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
извольте... (комментарии к коду)
1.случайным образом переменной ap присваиваем одно из четырех значений. 2.случайным образом выбираем ячейку и копируем данные из нее в буфер обмена 3.стартуем выбранное в п.1 приложение 4.настойчиво пытаемся активировать окно этого приложения (кому-то из них надо доля секунды, чтобы стартовать а кому-то 3-10 секунд) 5.как только приложение активировалось без ошибки - отсылаем в него команду вставить (Ctrl+V) 6.всё. содержимое ячейки, случайно выбранной в п.2, скопировано в приложение (если приложение в состоянии принять данные такого типа) кнопку я создавал так: (у меня 2007 офис) 1.выбрал ленту "Разаработчик" 2.в группе "Элементы управления" выбрал кнопку "Вставить" 3.в группе "элементы управления форм" выбрал пиктограмму кнопки 4.курсор поменял изображение (стал крестом +) 5.нажал левую кнопку мыши и потянул мышь вправо-вниз очертив таким образом контур будущей кнопки я не очень быстро обьясняю? успеваете? 6.отпустил кнопку мыши, прямоугольник стал похож на кнопку, появилась тень, посреди кнопки появилась надпись "Кнопка 1" (в зависимости от того сколько кнопок уже есть на листе, кнопка может иметь другой номер) 7.всплыл диалог "Назначить макрос обьекту". я его просто закрыл 8.открыл редактор VBA (Alt+F11) 9.вставил модуль 10.создал процедуру с именем InsData 11.вернулся на лист Excel 12.нажал правой кнопкой мыши по кнопке 13.в всплывшем меню выбрал "назначить макрос" 14.из списка доступных макросов выбрал InsData 15.наколотил чайку, попил, написал макрос макрос есть в предыдущем посте, комментарий к нему - в начале этого. здесь описан один из способов, как вставить кнопку и привязать к ней макрос. есть несколько альтернативных. не буду их описывать, а то я и так на этот ответ растратил почти все буквы с компьютера. Успехов!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
06.05.2010, 02:42 | #6 |
Форумчанин
Регистрация: 14.02.2009
Сообщений: 753
|
посмотри тута
VBA
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru |
06.05.2010, 10:27 | #7 |
Пользователь
Регистрация: 28.04.2010
Сообщений: 40
|
IgorGO
спасибо за очень подробное описание alex77755 спасибо за ресурс |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как создать кнопку в форме, которая будет создавать отчет | Tatu | Microsoft Office Access | 3 | 04.03.2010 19:13 |
Макросом создать кнопку и посадить на нее другой макрос 2 | as-is | Microsoft Office Excel | 0 | 27.02.2010 11:53 |
КАК создать кнопку | DEZuv | Microsoft Office Access | 4 | 04.04.2009 11:50 |
Помогите создать кнопку-картику хорошего качества! | ДЫМ | Общие вопросы Delphi | 11 | 15.06.2008 21:32 |
Как создать кнопку в панели для окон???? | Angel86rus | Общие вопросы Delphi | 4 | 03.10.2007 19:01 |