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

Вход

Регистрация

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

 

= Мир MS Excel/Проверка на существование папки и создание второй - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Проверка на существование папки и создание второй
pips Дата: Воскресенье, 15.07.2018, 18:16 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Подскажите, пожалуйста, при создании папки с таким же именем выскакивает ошибка.
Как дописать код так, чтобы при наличии папки с таким же именем, создавалась папка с, например, временем и датой (например, Новая папка_15.07.2018_18.14), либо порядковый номер папки ("Новая папка_1, Новая папка_2")

[vba]
Код

Private Sub CommandButton2_Click() 'сохранение в нужную папку
    Dim FileName$, NewDir$
    'создание папки в текущей папке и сохранение файла
    NewDir = ThisWorkbook.Path + "\" + Worksheets("Титульный").Range("AA20").Text + "_" + Worksheets("Титульный").Range("M29").Text
    If Dir(NewDir, vbDirectory) = "" Then
    MkDir (NewDir)
    FileName = NewDir + "\" + Worksheets("Титульный").Range("AA20").Text + "_" + Worksheets("Титульный").Range("M29").Text + ".xlsm"
    ActiveWorkbook.SaveCopyAs FileName
    MsgBox "Файл сохранен в формате Excel"
    End If
End Sub
[/vba]
Три дня пробовал разные варианты, либо код не поддается, либо срабатывает, но только для создания второй папки. Дальше ошибка.
Спасибо!


Сообщение отредактировал pips - Воскресенье, 15.07.2018, 18:38
 
Ответить
СообщениеДобрый день!
Подскажите, пожалуйста, при создании папки с таким же именем выскакивает ошибка.
Как дописать код так, чтобы при наличии папки с таким же именем, создавалась папка с, например, временем и датой (например, Новая папка_15.07.2018_18.14), либо порядковый номер папки ("Новая папка_1, Новая папка_2")

[vba]
Код

Private Sub CommandButton2_Click() 'сохранение в нужную папку
    Dim FileName$, NewDir$
    'создание папки в текущей папке и сохранение файла
    NewDir = ThisWorkbook.Path + "\" + Worksheets("Титульный").Range("AA20").Text + "_" + Worksheets("Титульный").Range("M29").Text
    If Dir(NewDir, vbDirectory) = "" Then
    MkDir (NewDir)
    FileName = NewDir + "\" + Worksheets("Титульный").Range("AA20").Text + "_" + Worksheets("Титульный").Range("M29").Text + ".xlsm"
    ActiveWorkbook.SaveCopyAs FileName
    MsgBox "Файл сохранен в формате Excel"
    End If
End Sub
[/vba]
Три дня пробовал разные варианты, либо код не поддается, либо срабатывает, но только для создания второй папки. Дальше ошибка.
Спасибо!

Автор - pips
Дата добавления - 15.07.2018 в 18:16
RAN Дата: Воскресенье, 15.07.2018, 20:12 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
От моего кота Пипса
[vba]
Код
Sub мяу()
Dim i&
    On Error Resume Next
    MkDir ("D:\A")
    If Err.Number = 0 Then Exit Sub
    i = 1
    Do
        Err.Clear
        MkDir ("D:\A" & i)
        i = i + 1
        DoEvents
    Loop Until Err.Number = 0
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеОт моего кота Пипса
[vba]
Код
Sub мяу()
Dim i&
    On Error Resume Next
    MkDir ("D:\A")
    If Err.Number = 0 Then Exit Sub
    i = 1
    Do
        Err.Clear
        MkDir ("D:\A" & i)
        i = i + 1
        DoEvents
    Loop Until Err.Number = 0
End Sub
[/vba]

Автор - RAN
Дата добавления - 15.07.2018 в 20:12
pips Дата: Воскресенье, 15.07.2018, 20:42 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо, работает!
Коту привет
 
Ответить
СообщениеСпасибо, работает!
Коту привет

Автор - pips
Дата добавления - 15.07.2018 в 20:42
doober Дата: Воскресенье, 15.07.2018, 21:43 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 995
Репутация: 345 ±
Замечаний: 0% ±

Excel 2010
не по феншую коты.[vba]
Код
Sub Test()
SavePath = SaveFolder("C:\021")
End Sub

Function SaveFolder(ByVal SavePath As String) As String
    Set FSO = CreateObject("Scripting.FileSystemObject")
    If Not FSO.FolderExists(SavePath) Then
        FSO.CreateFolder SavePath
        SaveFolder = SavePath
        Set FSO = Nothing
        Exit Function
    End If
    Dim BaseName As String, BaseName1 As String
    BaseName = FSO.GetBaseName(SavePath)
    BaseName1 = FSO.GetBaseName(SavePath)
    SavePath = FSO.GetParentFolderName(SavePath)
    Dim tempCount As Integer
    Do While FSO.FolderExists(FSO.BuildPath(SavePath, BaseName))
        tempCount = tempCount + 1
        BaseName = BaseName1 & "[" & tempCount & "]"
    Loop
  SavePath = FSO.BuildPath(SavePath, BaseName)
       If Not FSO.FolderExists(SavePath) Then
        FSO.CreateFolder SavePath
    End If
    Set FSO = Nothing
     SaveFolder = SavePath
End Function
[/vba]




Сообщение отредактировал doober - Воскресенье, 15.07.2018, 21:44
 
Ответить
Сообщениене по феншую коты.[vba]
Код
Sub Test()
SavePath = SaveFolder("C:\021")
End Sub

Function SaveFolder(ByVal SavePath As String) As String
    Set FSO = CreateObject("Scripting.FileSystemObject")
    If Not FSO.FolderExists(SavePath) Then
        FSO.CreateFolder SavePath
        SaveFolder = SavePath
        Set FSO = Nothing
        Exit Function
    End If
    Dim BaseName As String, BaseName1 As String
    BaseName = FSO.GetBaseName(SavePath)
    BaseName1 = FSO.GetBaseName(SavePath)
    SavePath = FSO.GetParentFolderName(SavePath)
    Dim tempCount As Integer
    Do While FSO.FolderExists(FSO.BuildPath(SavePath, BaseName))
        tempCount = tempCount + 1
        BaseName = BaseName1 & "[" & tempCount & "]"
    Loop
  SavePath = FSO.BuildPath(SavePath, BaseName)
       If Not FSO.FolderExists(SavePath) Then
        FSO.CreateFolder SavePath
    End If
    Set FSO = Nothing
     SaveFolder = SavePath
End Function
[/vba]

Автор - doober
Дата добавления - 15.07.2018 в 21:43
pips Дата: Воскресенье, 15.07.2018, 21:44 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Сейчас второй попробую, спасибо


Сообщение отредактировал pips - Воскресенье, 15.07.2018, 21:47
 
Ответить
СообщениеСейчас второй попробую, спасибо

Автор - pips
Дата добавления - 15.07.2018 в 21:44
pips Дата: Воскресенье, 15.07.2018, 21:54 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Блин, подскажите еще как прописать сохранение файла в эту папку? :( Не могу новый путь прописать при сохранении файла, папки пустые получаются...


Сообщение отредактировал pips - Воскресенье, 15.07.2018, 21:54
 
Ответить
СообщениеБлин, подскажите еще как прописать сохранение файла в эту папку? :( Не могу новый путь прописать при сохранении файла, папки пустые получаются...

Автор - pips
Дата добавления - 15.07.2018 в 21:54
pips Дата: Воскресенье, 15.07.2018, 22:03 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Все, написал, всем огромное спасибо!
В начале пути поставил SavePath


Сообщение отредактировал pips - Воскресенье, 15.07.2018, 22:05
 
Ответить
СообщениеВсе, написал, всем огромное спасибо!
В начале пути поставил SavePath

Автор - pips
Дата добавления - 15.07.2018 в 22:03
RAN Дата: Воскресенье, 15.07.2018, 22:04 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
У злой собаки так
[vba]
Код
FileName =  Worksheets("Титульный").Range("AA20").Text + "_" + Worksheets("Титульный").Range("M29").Text + ".xlsm"
    ActiveWorkbook.SaveCopyAs SavePath & "\" & FileName
[/vba]
У меня - нужно добавить переменную SavePath , а дальше так-же.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеУ злой собаки так
[vba]
Код
FileName =  Worksheets("Титульный").Range("AA20").Text + "_" + Worksheets("Титульный").Range("M29").Text + ".xlsm"
    ActiveWorkbook.SaveCopyAs SavePath & "\" & FileName
[/vba]
У меня - нужно добавить переменную SavePath , а дальше так-же.

Автор - RAN
Дата добавления - 15.07.2018 в 22:04
pips Дата: Воскресенье, 15.07.2018, 22:06 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
:D спасибо!
 
Ответить
Сообщение:D спасибо!

Автор - pips
Дата добавления - 15.07.2018 в 22:06
doober Дата: Понедельник, 16.07.2018, 00:17 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 995
Репутация: 345 ±
Замечаний: 0% ±

Excel 2010
У злой собаки так

Я добрый пес :D


 
Ответить
Сообщение
У злой собаки так

Я добрый пес :D

Автор - doober
Дата добавления - 16.07.2018 в 00:17
  • Страница 1 из 1
  • 1
Поиск:

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