|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
22.01.2009, 19:18 | #1 |
Форумчанин
Регистрация: 30.07.2008
Сообщений: 125
|
Определение переменной
Добрый вечер!
Подскажтие ПЛЗ...решение задачи У меня записано 3 в каждом из них выбирается файл для загрузки Код везде одинаковый. Set opWb = ThisWorkbook Set opWs = opWb.Sheets("Сводная") m2: FilesToOpen = Application.GetOpenFilename(FileFil ter:="Microsoft Excel Files (*.xls), *.xls", _ MultiSelect:=False, Title:="Выберете файл для обработки") If TypeName(FilesToOpen) = "Boolean" Then Select Case MsgBox("Вы не выбрали ни одного Файла! Продолжить?", vbYesNo _ Or vbExclamation Or vbDefaultButton1, Application.Name) Case 6: GoTo m2 Case 7: Exit Sub End Select End If Set oWbook = Workbooks.Open(FilesToOpen) Set oWs = oWbook.Sheets(1) Как мне объявить глобальную переменую FilesToOpen для того чтобы прописать этот код в отдельном модуле и потом просто вызывать его из разных модулей? |
22.01.2009, 19:34 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
начните записывать новый макрос в строке "сохранить в:" вместо "Эта книга" выберите "Личная книга макросов". Можно на этом запись макроса остановить. Вы только что создали специфический файл эксель, который открывается при каждом запуске эксель. Копируйте туда ваш код, и пользуйтесь обявленными функциями из любой книги. Необходимо только учитывать, где находится код, там где это играет роль. И еще когда эксель будет закрывать спросит вас "сохранить изменения в personal-бла-бла-бла..." это и есть ваша личная книга макросов.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
22.01.2009, 19:59 | #3 |
Форумчанин
Регистрация: 30.07.2008
Сообщений: 125
|
Не совсет так..
Считаю это не лгичным т.к. книги находится в общем доступе, и в ней работают как минимум 3 человека одновременно. Мне необходимо из 3-х разных модулей этой книги открывать разные файлы для разного типа обработки. структура токова загрузить продажи 1: выбираем файл грузим1 загрузить продажи 2 :выбираем файл грузим2 загрузить продажи 3: выбираем файл грузим3 так вот я хочу из 3 частей кода ("выбираем файл") получился один отдельный макрос которы просто будет открывать файл, и присваивать имя переменной FileToOpen имя файло который он открыл. и я мог прочитать имя этого файла из любого модуля. |
22.01.2009, 20:12 | #4 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Может, так:
Код:
|
22.01.2009, 20:36 | #5 |
Форумчанин
Регистрация: 30.07.2008
Сообщений: 125
|
Извените за тупой вопрос,
а как мне вызвать эту функию с тот момент когда мне нужно? |
22.01.2009, 20:46 | #6 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
1) Добавляете модуль в проект VBA
2) Вставляете в него код функции: Код:
Код:
Таким образом, код file1 = Open_XL_File("Выберите файл со списком продаж") вызывает диалоговое окно открытия файла (с заголовком "Выберите файл со списком продаж"), и открывает выбранный файл. В переменную file1 записывается имя открытого файла (или пустая строка, если пользователь отказался от выбора файла) Строку типа file1 = Open_XL_File Вы можете вставить в любое место любого макроса. Можно чуть-чуть изменить функцию, чтобы она возвращала не имя открытого файла, а сам файл (объект типа Workbook) - чтобы сразу получать ссылку на открытый файл.
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 22.01.2009 в 20:58. |
22.01.2009, 21:02 | #7 |
Форумчанин
Регистрация: 30.07.2008
Сообщений: 125
|
Спасибо с тем как вызвать я разодрался, но возникла еще одно проблемка
Я пишу oWb = Open_XL_File Set oWs = oWb.Sheets(1) выдает ошибку Далее у меня весь код содержит oWs, и oWb Как мне определить их правильно? |
22.01.2009, 21:06 | #8 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Я же писал:
Цитата:
Код:
Цитата:
|
||
22.01.2009, 21:57 | #9 |
Форумчанин
Регистрация: 30.07.2008
Сообщений: 125
|
Большое все спасибо Вы мне очень помогли с решением модернизации кода...
Для меня это пока еще сложные задачи, но я стараюсь решать их сам.. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определение типа переменной | Игорь007 | Общие вопросы C/C++ | 7 | 10.01.2009 13:01 |
Адрес переменной | Pedro | Общие вопросы Delphi | 11 | 16.12.2008 13:03 |
Обнуление переменной | [MI_nor] | Общие вопросы C/C++ | 3 | 05.11.2008 18:01 |
Изменение переменной | yura-cat | Помощь студентам | 7 | 20.09.2008 17:42 |
Работа с файлами (создание, удаление, открытие, связываение с переменной, очищение памяти переменной) | Arkuz | Общие вопросы Delphi | 12 | 25.09.2007 20:47 |