С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/34: Рейтинг темы: голосов - 34, средняя оценка - 4.50
132 / 15 / 2
Регистрация: 27.11.2013
Сообщений: 509

Как правильно сохранить книгу Exel

17.03.2016, 00:29. Показов 6872. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Такая ситуация. В модуле уровня книги (ThisBook) записан макрос события (перед закрытием книги), который проверяет, где находится файл

Visual Basic
1
2
3
4
5
6
7
8
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 
mesto = ActiveWorkbook.Path
gdeMi = Left(mesto, 1)
 
If gdeMi = "C" Then Call SochrKopia Else Exit Sub
 
End Sub

если на диске С, он запускает макрос, который предоставляет выбор, сохранить ли файл на флешку, или закрыть, не сохраняя:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub SochrKopia()
 
Dim userEntry As String
userEntry = MsgBox("Сохранить изменения?", vbYesNo)
 
If userEntry = vbYes Then ThisWorkbook.Save
 
If userEntry = vbNo Then
    ThisWorkbook.Close SaveChanges:=False
    Exit Sub
End If
 
On Error GoTo Fleshka
 
ThisWorkbook.SaveCopyAs "D:\7К.xlsm"
Exit Sub
 
Fleshka:
ThisWorkbook.SaveCopyAs "E:\7К.xlsm"
Exit Sub
End Sub
Если открыт один файл, все работает, правда, не закрывается само окно Exel, а хотелось бы, как при обыч. закрытии. Но если открыто несколько файлов, после сохранения первого Exel виснет и падает. Поставил недавно W8.1, при W8 эти макросы работали. Изменилось чо? Или просто ошибка какая-то? Как правильно закрыть файлы кодом?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.03.2016, 00:29
Ответы с готовыми решениями:

Сохранить документ Exel как значение ячейки
Прошу прощения, но с VBA и макросами начал знакомство только сегодня. За литературой пойду только вечером. А руководство задачку поставило:...

Как заставить MS Exel сохранить документ на ftp сервере?
Необходимо, чтобы программа создавала отчет и отправляла его на ftp сервер. А может есть другой способ автоматической передачи данных?...

Как сохранить книгу)
Здравствуйте! Подскажите, как сохранить книгу после применения событияPrivate Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As...

2
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
17.03.2016, 04:29
Лучший ответ Сообщение было отмечено shavka как решение

Решение

Я так подозреваю, что это из-за GoTo

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub SochrKopia()
    Dim userEntry As String
    userEntry = MsgBox("Сохранить изменения?", vbYesNo)
    
    If userEntry = vbYes Then
        If Dir("E:") <> "" Then
            ThisWorkbook.SaveCopyAs "E:\7К.xlsm"
        Else
            ThisWorkbook.SaveCopyAs "D:\7К.xlsm"
        End If
        
        'close
        ThisWorkbook.Save
        If Workbooks.Count = 1 Then Application.Quit
        ThisWorkbook.Close SaveChanges:=True
    Else
        'close
        If Workbooks.Count = 1 Then Application.Quit
        ThisWorkbook.Close SaveChanges:=False
    End If
End Sub
Добавлено через 14 минут
Точно, зыбыл. Между 17 и 18 строкой вставить надо ещё Application.DisplayAlerts = False
А после ThisWorkbook.Close SaveChanges:=False --> Application.DisplayAlerts = True
1
132 / 15 / 2
Регистрация: 27.11.2013
Сообщений: 509
17.03.2016, 11:04  [ТС]
Классно, работает! Спасибо. Я тоже подозревал, что из-за GoTo, у меня с ним вечно проблемы. Просто хоцца попроще, а выходит, как фсехда
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.03.2016, 11:04
Помогаю со студенческими работами здесь

Как сохранить диаграмму в новую книгу Excel?
Добрый день, уважаемые коллеги Подскажите пожалуйста, каким образом средствами VBA можно построить диаграмму в новой книге Excel? ...

Как сохранить книгу Excel под именем из переменной?
Как сохранить книгу Excel под именем из переменной? Dim i ' ... Sheets(&quot;Лист 1&quot;).Select Sheets(&quot;Лист 1&quot;).Copy ...

Как StringGrid сохранить в Exel (xls file)?
приветствую тебя мой посетитель! собственно тема и есть мой вопрос :) есть стрингрид с текстом. хочу его сохранить в формате Exel ,...

Как сохранить данные текстовых полей, леблов в exel?
Попробовал сделать вот так: Dim Exl As Object = CreateObject(&quot;Excel.Application&quot;) Exl.workbooks.open(&quot;D:\Test.xls&quot;) ...

Как без глюков сохранить данные в exel таблицу (Библиотека EPPlus)
Использую для сохранения данных в таблицу библиотеку EPPlus 4.0.4.0 Мой код для сохранения следующий ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru