powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нужно снова разобраться с сохранением книги под другим именем
3 сообщений из 3, страница 1 из 1
Нужно снова разобраться с сохранением книги под другим именем
    #34481506
alex281271
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите разобраться.Я задавал вопрос по поводу замены имениактивной книги и получил ответ от lena_#### такого вида

В этом примере имя для книги берется из ячейки "A1" листа "Лист1". Книга сохраняется в том же каталоге, что и исходная (исходная должна быть хоть раз сохранена). При желании можно добавить валидатор имени и проверку на существование файла с таким именем.
Private Sub CommandButton1_Click()
With ThisWorkbook
.SaveAs .Path & "\" & .Worksheets("Лист1").Range("A1")
End With
End Sub
Вроде всё работает нормально , если все имена в А1 разные , но если снова щёлкнуть на сохранение(в ячейке А1 имя которое уже сохранено) то выйдет стандартный диалог что такая книга существует и вопрос заменить? И варианты:
да, нет и отмена. Если выбрать да ,то тогда всё нормально ,если выбрать нет или отмена то сразу выходит ошибка 1004 и надпись « Method Save as of object Workbook failed.»
Как от этого избавиться ? очень нужно.
Модератор: А сколько еще таких тем нужно чтобы окончательно разобраться с сохранением книги под другим именем? Десяток хватит? Старая тема еще на этой же странице, нужно поднимать ее а не создаватьм новую.
...
Рейтинг: 0 / 0
Нужно снова разобраться с сохранением книги под другим именем
    #34481617
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex281271

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub CommandButton1Click()
  Dim v_File As String
  
  With ThisWorkbook
    v_File = .Path & "\" & .Worksheets("Лист1").Range("A1") & ".xls"
    If f_FileExist(v_File) Then
      MsgBox "Файл с таким именем существует"
    Else
      .SaveAs v_File
    End If
  End With
End Sub

Function f_FileExist(v_File As String) As Boolean
  'возвращает True, если файл с данным именем существует в данной директории
  Dim v_FSO As Object
  Set v_FSO = New Scripting.FileSystemObject
  f_FileExist = v_FSO.FileExists(v_File)
End Function
...
Рейтинг: 0 / 0
Нужно снова разобраться с сохранением книги под другим именем
    #34481669
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В торопях странноватая получилась функция f_FileExist. Виновата.

Если хочется использовать раннее связывание, то нужно к проекту подключить библиотеку Microsoft Scripting Runtime. Тогда для f_FileExist такой код:
Код: plaintext
1.
2.
3.
4.
5.
Function f_FileExist(v_File As String) As Boolean
  'возвращает True, если файл с данным именем существует в данной директории
  Dim v_FSO As Scripting.FileSystemObject
  Set v_FSO = New Scripting.FileSystemObject
  f_FileExist = v_FSO.FileExists(v_File)
End Function

Для случая позднего связывания подключение к проекту Microsoft Scripting Runtime не требуется и:
Код: plaintext
1.
2.
3.
4.
5.
Function f_FileExist(v_File As String) As Boolean
  'возвращает True, если файл с данным именем существует в данной директории
  Dim v_FSO As Object
  Set v_FSO = CreateObject("Scripting.FileSystemObject")
  f_FileExist = v_FSO.FileExists(v_File)
End Function
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нужно снова разобраться с сохранением книги под другим именем
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]