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

Вход

Регистрация

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

 

= Мир MS Excel/Создание папки, в ней еще одной папки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Создание папки, в ней еще одной папки
danilka51 Дата: Вторник, 28.05.2013, 13:56 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 5 ±
Замечаний: 0% ±

Возникла ситуация, что из определенного листа нужно создать папку и если она существует, то в ней еще одну папку, а в ней уже файл.
К сообщению приложен файл: 3572127.xls (41.0 Kb)
 
Ответить
СообщениеВозникла ситуация, что из определенного листа нужно создать папку и если она существует, то в ней еще одну папку, а в ней уже файл.

Автор - danilka51
Дата добавления - 28.05.2013 в 13:56
danilka51 Дата: Вторник, 28.05.2013, 16:17 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 5 ±
Замечаний: 0% ±

[vba]
Код
Dim s
s = ThisWorkbook.Path & TextBox1
MkDir s
[/vba]

Что тут исправить?
 
Ответить
Сообщение[vba]
Код
Dim s
s = ThisWorkbook.Path & TextBox1
MkDir s
[/vba]

Что тут исправить?

Автор - danilka51
Дата добавления - 28.05.2013 в 16:17
nilem Дата: Вторник, 28.05.2013, 18:51 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Цитата (danilka51)
Что тут исправить?

наверное, так
[vba]
Код
s = ThisWorkbook.Path & "\" & TextBox1
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение
Цитата (danilka51)
Что тут исправить?

наверное, так
[vba]
Код
s = ThisWorkbook.Path & "\" & TextBox1
[/vba]

Автор - nilem
Дата добавления - 28.05.2013 в 18:51
danilka51 Дата: Вторник, 28.05.2013, 22:45 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 5 ±
Замечаний: 0% ±

С этим понятно, а как создать в созданной папке папку, а книгу как создать? Пока ни чего подходящего не нашел (((((
 
Ответить
СообщениеС этим понятно, а как создать в созданной папке папку, а книгу как создать? Пока ни чего подходящего не нашел (((((

Автор - danilka51
Дата добавления - 28.05.2013 в 22:45
Саня Дата: Среда, 29.05.2013, 01:28 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
Цитата (danilka51)
... из определенного листа нужно создать папку ...

берешь лист, сгибаешь его пополам, края склеиваешь,....
biggrin

а если по делу, то:
[vba]
Код
MkDir "C:\Fold1\"
MkDir "C:\Fold1\Fold2\"
MkDir "C:\Fold1\Fold2\Fold3\"  ' намек понял?
[/vba]

ну а если по взрослому, то так:
[vba]
Код
Private Declare Function SHCreateDirectoryEx Lib "shell32" Alias "SHCreateDirectoryExA" ( _
                    ByVal Hwnd As Long, _
                    ByVal pszPath As String, _
                    ByVal psa As Any) As Long
Private Const ERROR_SUCCESS = 0&                    ' The operation completed successfully
Private Const ERROR_BAD_PATHNAME = 161&             '* The specified path is invalid
Private Const ERROR_FILENAME_EXCED_RANGE = 206&     ' The filename or extension is too long
Private Const ERROR_PATH_NOT_FOUND = 3&             ' The system cannot find the path specified
Private Const ERROR_FILE_EXISTS = 80&               ' The file exists
Private Const ERROR_ALREADY_EXISTS = 183&           '* Cannot create a file when that file already exists
Private Const ERROR_INVALID_NAME = 123&             '* The filename, directory name, or volume label syntax is incorrect
Private Const ERROR_CANCELLED = 1223&               ' The operation was canceled by the user

Function lWinAPI_MkDir(sPath As String) As Long
     lWinAPI_MkDir = SHCreateDirectoryEx(0&, sPath, ByVal 0&)
End Function

' а книгу как создать?
' например
Sub MkSheetWB()
     Dim sPath As String
     sPath = "C:\Fold1\Fold2\Fold3\"
      
     ' создаем папку
     lWinAPI_MkDir sPath   ' одной строкой!
      
     Dim sName As String
     sName = ActiveSheet.Name
      
     sPath = sPath & sName & ".xls"

     ActiveSheet.Copy
     ActiveWorkbook.SaveAs Filename:=sPath, FileFormat:=xlExcel8
     ActiveWorkbook.Close
End Sub
[/vba]
 
Ответить
Сообщение
Цитата (danilka51)
... из определенного листа нужно создать папку ...

берешь лист, сгибаешь его пополам, края склеиваешь,....
biggrin

а если по делу, то:
[vba]
Код
MkDir "C:\Fold1\"
MkDir "C:\Fold1\Fold2\"
MkDir "C:\Fold1\Fold2\Fold3\"  ' намек понял?
[/vba]

ну а если по взрослому, то так:
[vba]
Код
Private Declare Function SHCreateDirectoryEx Lib "shell32" Alias "SHCreateDirectoryExA" ( _
                    ByVal Hwnd As Long, _
                    ByVal pszPath As String, _
                    ByVal psa As Any) As Long
Private Const ERROR_SUCCESS = 0&                    ' The operation completed successfully
Private Const ERROR_BAD_PATHNAME = 161&             '* The specified path is invalid
Private Const ERROR_FILENAME_EXCED_RANGE = 206&     ' The filename or extension is too long
Private Const ERROR_PATH_NOT_FOUND = 3&             ' The system cannot find the path specified
Private Const ERROR_FILE_EXISTS = 80&               ' The file exists
Private Const ERROR_ALREADY_EXISTS = 183&           '* Cannot create a file when that file already exists
Private Const ERROR_INVALID_NAME = 123&             '* The filename, directory name, or volume label syntax is incorrect
Private Const ERROR_CANCELLED = 1223&               ' The operation was canceled by the user

Function lWinAPI_MkDir(sPath As String) As Long
     lWinAPI_MkDir = SHCreateDirectoryEx(0&, sPath, ByVal 0&)
End Function

' а книгу как создать?
' например
Sub MkSheetWB()
     Dim sPath As String
     sPath = "C:\Fold1\Fold2\Fold3\"
      
     ' создаем папку
     lWinAPI_MkDir sPath   ' одной строкой!
      
     Dim sName As String
     sName = ActiveSheet.Name
      
     sPath = sPath & sName & ".xls"

     ActiveSheet.Copy
     ActiveWorkbook.SaveAs Filename:=sPath, FileFormat:=xlExcel8
     ActiveWorkbook.Close
End Sub
[/vba]

Автор - Саня
Дата добавления - 29.05.2013 в 01:28
KuklP Дата: Четверг, 30.05.2013, 08:07 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
biggrin
[vba]
Код
Public Sub www1()
      CreateObject("Shell.Application").Namespace("h:\").NewFolder ("New Folder\New Folder\New Folder")
End Sub
[/vba]
biggrin biggrin АПИ:
[vba]
Код
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

Public Sub www()
     MakeSureDirectoryPathExists "C:\Fold1\Fold2\Fold3\"
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Четверг, 30.05.2013, 08:13
 
Ответить
Сообщениеbiggrin
[vba]
Код
Public Sub www1()
      CreateObject("Shell.Application").Namespace("h:\").NewFolder ("New Folder\New Folder\New Folder")
End Sub
[/vba]
biggrin biggrin АПИ:
[vba]
Код
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

Public Sub www()
     MakeSureDirectoryPathExists "C:\Fold1\Fold2\Fold3\"
End Sub
[/vba]

Автор - KuklP
Дата добавления - 30.05.2013 в 08:07
danilka51 Дата: Пятница, 31.05.2013, 11:19 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 5 ±
Замечаний: 0% ±

У меня получилось вот так:
[vba]
Код
CreateObject("Shell.Application").Namespace(ThisWorkbook.Path).NewFolder (TextBox1)

Dim wb As Workbook
Set wb = Workbooks.Add
wb.SaveAs Filename:=ThisWorkbook.Path & "\" & TextBox1 & "\" & TextBox3 & ".xlsx"
wb.Close
[/vba]

А через функцию что-то ни как (
 
Ответить
СообщениеУ меня получилось вот так:
[vba]
Код
CreateObject("Shell.Application").Namespace(ThisWorkbook.Path).NewFolder (TextBox1)

Dim wb As Workbook
Set wb = Workbooks.Add
wb.SaveAs Filename:=ThisWorkbook.Path & "\" & TextBox1 & "\" & TextBox3 & ".xlsx"
wb.Close
[/vba]

А через функцию что-то ни как (

Автор - danilka51
Дата добавления - 31.05.2013 в 11:19
danilka51 Дата: Пятница, 31.05.2013, 11:22 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 5 ±
Замечаний: 0% ±

и как теперь туда скопировать нужный лист тоже пока ни как не могу понять
 
Ответить
Сообщениеи как теперь туда скопировать нужный лист тоже пока ни как не могу понять

Автор - danilka51
Дата добавления - 31.05.2013 в 11:22
AndreTM Дата: Пятница, 31.05.2013, 13:18 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
Вместо
Цитата (danilka51)
[vba]
Код
Dim wb As Workbook
  Set wb = Workbooks.Add
  wb.SaveAs Filename:=ThisWorkbook.Path & "\" & TextBox1 & "\" & TextBox3 & ".xlsx"
  wb.Close
[/vba]

Попробовать
[vba]
Код
Sheets("Копируемый лист").Copy
SaveAs Filename:=ThisWorkbook.Path & "\" & TextBox1 & "\" & TextBox3 & ".xlsx", CreateBackup:=False
ActiveWorkbook.Close
[/vba]


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеВместо
Цитата (danilka51)
[vba]
Код
Dim wb As Workbook
  Set wb = Workbooks.Add
  wb.SaveAs Filename:=ThisWorkbook.Path & "\" & TextBox1 & "\" & TextBox3 & ".xlsx"
  wb.Close
[/vba]

Попробовать
[vba]
Код
Sheets("Копируемый лист").Copy
SaveAs Filename:=ThisWorkbook.Path & "\" & TextBox1 & "\" & TextBox3 & ".xlsx", CreateBackup:=False
ActiveWorkbook.Close
[/vba]

Автор - AndreTM
Дата добавления - 31.05.2013 в 13:18
danilka51 Дата: Пятница, 31.05.2013, 13:30 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 5 ±
Замечаний: 0% ±

Ругается на TextBox3,
и говорит:
Sub or function not defined
К сообщению приложен файл: 9775068.xls (48.0 Kb)


Сообщение отредактировал danilka51 - Пятница, 31.05.2013, 13:33
 
Ответить
СообщениеРугается на TextBox3,
и говорит:
Sub or function not defined

Автор - danilka51
Дата добавления - 31.05.2013 в 13:30
danilka51 Дата: Пятница, 31.05.2013, 14:02 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 5 ±
Замечаний: 0% ±

ответ найден:
[vba]
Код
CreateObject("Shell.Application").Namespace(ThisWorkbook.Path).NewFolder (TextBox1)
Dim wb As Workbook
Set wb = Workbooks.Add
     With ThisWorkbook.Sheets("Лист2")
         .Copy wb.Sheets(1)
wb.SaveAs Filename:=ThisWorkbook.Path & "\" & TextBox1 & "\" & TextBox3 & ".xlsx"
  End With
wb.Close
[/vba]

Но если есть предложения по упрощению, то буду рад!
 
Ответить
Сообщениеответ найден:
[vba]
Код
CreateObject("Shell.Application").Namespace(ThisWorkbook.Path).NewFolder (TextBox1)
Dim wb As Workbook
Set wb = Workbooks.Add
     With ThisWorkbook.Sheets("Лист2")
         .Copy wb.Sheets(1)
wb.SaveAs Filename:=ThisWorkbook.Path & "\" & TextBox1 & "\" & TextBox3 & ".xlsx"
  End With
wb.Close
[/vba]

Но если есть предложения по упрощению, то буду рад!

Автор - danilka51
Дата добавления - 31.05.2013 в 14:02
danilka51 Дата: Пятница, 31.05.2013, 14:07 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 5 ±
Замечаний: 0% ±

Еще одно но:
Если такой лист уже существует, то нужно чтобы добавлял с указанием даты
 
Ответить
СообщениеЕще одно но:
Если такой лист уже существует, то нужно чтобы добавлял с указанием даты

Автор - danilka51
Дата добавления - 31.05.2013 в 14:07
danilka51 Дата: Пятница, 31.05.2013, 14:33 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 5 ±
Замечаний: 0% ±

Кому интересно что получилось:
К сообщению приложен файл: 8802426.xls (49.0 Kb)
 
Ответить
СообщениеКому интересно что получилось:

Автор - danilka51
Дата добавления - 31.05.2013 в 14:33
  • Страница 1 из 1
  • 1
Поиск:

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