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

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Закрытие файла из которого был запущен макрос - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Закрытие файла из которого был запущен макрос (Макросы/Sub)
Закрытие файла из которого был запущен макрос
Roman777 Дата: Понедельник, 05.06.2017, 15:31 | Сообщение № 21
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
ZamoK, не буквально =) Вы сейчас пытаетесь копировать путь?
[vba]
Код
sNewFileName = thisworkbook.path & "\Книга1.xls"
[/vba]


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Понедельник, 05.06.2017, 15:32
 
Ответить
СообщениеZamoK, не буквально =) Вы сейчас пытаетесь копировать путь?
[vba]
Код
sNewFileName = thisworkbook.path & "\Книга1.xls"
[/vba]

Автор - Roman777
Дата добавления - 05.06.2017 в 15:31
ZamoK Дата: Понедельник, 05.06.2017, 16:26 | Сообщение № 22
Группа: Проверенные
Ранг: Обитатель
Сообщений: 268
Репутация: 4 ±
Замечаний: 0% ±

Excel 2003-2016
Roman777, :D Все отлично, Спасибо!


Я не Гуру, но стремлюсь!
 
Ответить
СообщениеRoman777, :D Все отлично, Спасибо!

Автор - ZamoK
Дата добавления - 05.06.2017 в 16:26
Manyasha Дата: Вторник, 06.06.2017, 10:27 | Сообщение № 23
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
запускать его надо отдельно да? запустить из под открытого файла excel нельзя?

Запускать надо сам скрипт, двойным щелчком. Подразумевается, что файл копия закрыт на момент запуска. В коде нужно поменять xlsx на xls и пути расположения файлов, больше ничего менять не нужно.
можно ли всё же запустить скрипт vbs из под excel
Можно, но только не понимаю зачем. Если файл-копия открыт, зачем его еще раз открывать? %)
[vba]
Код
Shell "cscript ""C:\test2\open file.vbs""", vbHide
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
запускать его надо отдельно да? запустить из под открытого файла excel нельзя?

Запускать надо сам скрипт, двойным щелчком. Подразумевается, что файл копия закрыт на момент запуска. В коде нужно поменять xlsx на xls и пути расположения файлов, больше ничего менять не нужно.
можно ли всё же запустить скрипт vbs из под excel
Можно, но только не понимаю зачем. Если файл-копия открыт, зачем его еще раз открывать? %)
[vba]
Код
Shell "cscript ""C:\test2\open file.vbs""", vbHide
[/vba]

Автор - Manyasha
Дата добавления - 06.06.2017 в 10:27
ZamoK Дата: Вторник, 06.06.2017, 12:00 | Сообщение № 24
Группа: Проверенные
Ранг: Обитатель
Сообщений: 268
Репутация: 4 ±
Замечаний: 0% ±

Excel 2003-2016
Roman777, Да ещё один вопрос, можно ли прикрутить прогресс выполнения именно копирования в статус бар, чего-то никак не пойму как это реализовать.


Я не Гуру, но стремлюсь!
 
Ответить
СообщениеRoman777, Да ещё один вопрос, можно ли прикрутить прогресс выполнения именно копирования в статус бар, чего-то никак не пойму как это реализовать.

Автор - ZamoK
Дата добавления - 06.06.2017 в 12:00
Pelena Дата: Вторник, 06.06.2017, 12:03 | Сообщение № 25
Группа: Админы
Ранг: Местный житель
Сообщений: 19189
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
можно ли прикрутить прогресс выполнения

этот вопрос не относится к данной теме


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
можно ли прикрутить прогресс выполнения

этот вопрос не относится к данной теме

Автор - Pelena
Дата добавления - 06.06.2017 в 12:03
ZamoK Дата: Вторник, 06.06.2017, 12:07 | Сообщение № 26
Группа: Проверенные
Ранг: Обитатель
Сообщений: 268
Репутация: 4 ±
Замечаний: 0% ±

Excel 2003-2016
Manyasha, Оригинал и копия рабочая имеют одинаковое название. Открывая рабочую копию выводится сообщение о том что файл устарел и на сервере есть более свежий файл, спрашивает Обновить? Да Нет . нажатием одной кнопки происходит закрытие файла, его замена, и открытие свежей, обновлённой копии. Roman777, помог мне это реализовать, но процедура долгая получилась, таится надежда что твой вариант мог бы отработать быстрей. Да и вообще очень интересное исполнение. Занёс себе в библиотеку :)


Я не Гуру, но стремлюсь!
 
Ответить
СообщениеManyasha, Оригинал и копия рабочая имеют одинаковое название. Открывая рабочую копию выводится сообщение о том что файл устарел и на сервере есть более свежий файл, спрашивает Обновить? Да Нет . нажатием одной кнопки происходит закрытие файла, его замена, и открытие свежей, обновлённой копии. Roman777, помог мне это реализовать, но процедура долгая получилась, таится надежда что твой вариант мог бы отработать быстрей. Да и вообще очень интересное исполнение. Занёс себе в библиотеку :)

Автор - ZamoK
Дата добавления - 06.06.2017 в 12:07
Roman777 Дата: Вторник, 06.06.2017, 12:09 | Сообщение № 27
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
ZamoK, мне кажется, что так просто не получится. Скорее всего только сторонними библиотеками. Просто информацию о текущем кол-ве скопированных байт даже откуда читать (для сравнения их с реальным весом файла - это что первое мне в голову приходит)? Напрямую из системной папки Temp мб, хотя не уверен, что такое получится, и даже если получится, будет очередным "костылём". Однозначно, я на данный вопрос затрудняюсь ответить))) [p.s.]Мб когда-нибудь попробую покопать в эту степь, но просто никогда не было нужды.[/p.s.]


Много чего не знаю!!!!
 
Ответить
СообщениеZamoK, мне кажется, что так просто не получится. Скорее всего только сторонними библиотеками. Просто информацию о текущем кол-ве скопированных байт даже откуда читать (для сравнения их с реальным весом файла - это что первое мне в голову приходит)? Напрямую из системной папки Temp мб, хотя не уверен, что такое получится, и даже если получится, будет очередным "костылём". Однозначно, я на данный вопрос затрудняюсь ответить))) [p.s.]Мб когда-нибудь попробую покопать в эту степь, но просто никогда не было нужды.[/p.s.]

Автор - Roman777
Дата добавления - 06.06.2017 в 12:09
ZamoK Дата: Вторник, 06.06.2017, 12:14 | Сообщение № 28
Группа: Проверенные
Ранг: Обитатель
Сообщений: 268
Репутация: 4 ±
Замечаний: 0% ±

Excel 2003-2016
Pelena, ну почему же не относится? Решение получено, процесс долгий, и как бонус или "люкс" исполнение данного макроса будет интересно не только мне, но и другим форумчанам, кто непосредственно заинтересовался данной темой. Я и как многие здесь наверное, очень не люблю "недопиленных" произведений (Буратино).


Я не Гуру, но стремлюсь!
 
Ответить
СообщениеPelena, ну почему же не относится? Решение получено, процесс долгий, и как бонус или "люкс" исполнение данного макроса будет интересно не только мне, но и другим форумчанам, кто непосредственно заинтересовался данной темой. Я и как многие здесь наверное, очень не люблю "недопиленных" произведений (Буратино).

Автор - ZamoK
Дата добавления - 06.06.2017 в 12:14
Roman777 Дата: Вторник, 06.06.2017, 12:19 | Сообщение № 29
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
ZamoK, Лучше отдельной темой потому, что кому-то мб потребуется тоже решать проблему не целиком как у Вас, а только организацию статус бара только при копировании файла...
и кстати, с большей вероятностью ответ на вопрос получите.


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Вторник, 06.06.2017, 12:20
 
Ответить
СообщениеZamoK, Лучше отдельной темой потому, что кому-то мб потребуется тоже решать проблему не целиком как у Вас, а только организацию статус бара только при копировании файла...
и кстати, с большей вероятностью ответ на вопрос получите.

Автор - Roman777
Дата добавления - 06.06.2017 в 12:19
ZamoK Дата: Вторник, 06.06.2017, 12:40 | Сообщение № 30
Группа: Проверенные
Ранг: Обитатель
Сообщений: 268
Репутация: 4 ±
Замечаний: 0% ±

Excel 2003-2016
Roman777, Да пожалуй новой темой, т.к. действительно к мБ надо привязать. Просто сообщение о выполнении это банально и не информативно.


Я не Гуру, но стремлюсь!
 
Ответить
СообщениеRoman777, Да пожалуй новой темой, т.к. действительно к мБ надо привязать. Просто сообщение о выполнении это банально и не информативно.

Автор - ZamoK
Дата добавления - 06.06.2017 в 12:40
Manyasha Дата: Вторник, 06.06.2017, 14:59 | Сообщение № 31
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
ZamoK, с вопросом для обновления. Книги лежат в разных папках с одинаковы именем book.
[vba]
Код
Dim fileOrig, fileCopy
Dim oExcel, fso
Dim date1, date2

fileOrig = "C:\test1\book.xls"
fileCopy = "C:\test2\book.xls"
Set fso = WScript.CreateObject("Scripting.Filesystemobject")

If Not fso.FileExists(fileOrig) Then
    msgbox "Файл " & fileOrig & " отсутствует!"
    WScript.Quit
Else

    Set date1 = fso.GetFile(fileOrig)
    Set date2 = fso.GetFile(fileCopy)
    If date2.DateLastModified < date1.DateLastModified Then
  if msgbox ("Файл устарел. Обновить?", 4) = 6 then
   fso.CopyFile fileOrig, fileCopy
  end if
    End If
    
    Set oExcel = WScript.CreateObject("Excel.Application")
    oExcel.Visible = true
    oExcel.Workbooks.Open(fileCopy)
End If
Set oExcel = Nothing
Set fso = Nothing
[/vba]
Открывая рабочую копию

я же Вам писала, что мой вариант не предусматривает открытия самого файла. Нужно запускать скрипт, а не файл экселя. Двойным щелчком нажимаете на open file.vbs, он уже сам понимает, какой файл нужно открыть.
К сообщению приложен файл: test-2.rar (11.9 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеZamoK, с вопросом для обновления. Книги лежат в разных папках с одинаковы именем book.
[vba]
Код
Dim fileOrig, fileCopy
Dim oExcel, fso
Dim date1, date2

fileOrig = "C:\test1\book.xls"
fileCopy = "C:\test2\book.xls"
Set fso = WScript.CreateObject("Scripting.Filesystemobject")

If Not fso.FileExists(fileOrig) Then
    msgbox "Файл " & fileOrig & " отсутствует!"
    WScript.Quit
Else

    Set date1 = fso.GetFile(fileOrig)
    Set date2 = fso.GetFile(fileCopy)
    If date2.DateLastModified < date1.DateLastModified Then
  if msgbox ("Файл устарел. Обновить?", 4) = 6 then
   fso.CopyFile fileOrig, fileCopy
  end if
    End If
    
    Set oExcel = WScript.CreateObject("Excel.Application")
    oExcel.Visible = true
    oExcel.Workbooks.Open(fileCopy)
End If
Set oExcel = Nothing
Set fso = Nothing
[/vba]
Открывая рабочую копию

я же Вам писала, что мой вариант не предусматривает открытия самого файла. Нужно запускать скрипт, а не файл экселя. Двойным щелчком нажимаете на open file.vbs, он уже сам понимает, какой файл нужно открыть.

Автор - Manyasha
Дата добавления - 06.06.2017 в 14:59
ZamoK Дата: Среда, 07.06.2017, 09:18 | Сообщение № 32
Группа: Проверенные
Ранг: Обитатель
Сообщений: 268
Репутация: 4 ±
Замечаний: 0% ±

Excel 2003-2016
Manyasha, Все отлично работает, только вот у меня на комп. установлено два офиса 2003 и 2016, файлы 2003 года открываются в офисе 2003 года, ну а свежее соответственно 2016. (Зачем это нужно не спрашивайте, объяснять долго, проще принять.) Можно ли поменять как-то скрипт, чтоб открывал в офисе 2003 года?


Я не Гуру, но стремлюсь!
 
Ответить
СообщениеManyasha, Все отлично работает, только вот у меня на комп. установлено два офиса 2003 и 2016, файлы 2003 года открываются в офисе 2003 года, ну а свежее соответственно 2016. (Зачем это нужно не спрашивайте, объяснять долго, проще принять.) Можно ли поменять как-то скрипт, чтоб открывал в офисе 2003 года?

Автор - ZamoK
Дата добавления - 07.06.2017 в 09:18
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Закрытие файла из которого был запущен макрос (Макросы/Sub)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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