Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.65/244: Рейтинг темы: голосов - 244, средняя оценка - 4.65
1 / 1 / 0
Регистрация: 12.01.2011
Сообщений: 5
1

Создание папок с именами ячеек Excel

12.01.2011, 22:36. Показов 49752. Ответов 29
Метки нет (Все метки)

Простите если пишу не в этот раздел.
Помогите пожалуйсто...
В програмировании полный ноль...
Суть такова: есть таблица Excel, в одной колонке перечесляются данные, около 6000 ячеек, необходимо создать пустые папки с именами этих ячеек... если вручную, я свихнусь на двухсотой...
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2011, 22:36
Ответы с готовыми решениями:

Создание папок с именами столбцов в Excel
Доброго дня! Есть 2 вопроса) 1. Имеется таблица Excel вида: Малышева 8 Марта Восточная...

Создание папок в VBA Excel
Добрый день!Пожалуйста помогите с VBA Exсel 1.При начале нового дня создать новую папку с именем...

Создание папок VBA Excel
Добрый день!Пожалуйста помогите с VBA Exсel 1.При начале нового дня создать новую папку с именем...

Excel Создание коллекции классов при выделении ячеек
Доброго времени! Подскажите неграмотному в ООП, каким образом можно создать несколько классов для...

29
Частенько бываю
749 / 330 / 42
Регистрация: 20.06.2007
Сообщений: 854
13.01.2011, 04:28 2
Это точно.. Попробуйте так:
Visual Basic
1
2
3
4
5
6
Sub MDir()
On Error Resume Next
For Each oCell In Range([A1], [A65536].End(xlUp))
    If Not IsEmpty(oCell) Then MkDir "C:\" & oCell
Next
End Sub
3
1 / 1 / 0
Регистрация: 12.01.2011
Сообщений: 5
13.01.2011, 17:59  [ТС] 3
Цитата Сообщение от Vlanib Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
Sub MDir()
On Error Resume Next
For Each oCell In Range([A1], [A65536].End(xlUp))
    If Not IsEmpty(oCell) Then MkDir "C:\" & oCell
Next
End Sub
Спасибо большое, что откликнулись, но что мне с "этим" делать???
Если можно, чуточку поподробнее...
0
1850 / 1172 / 189
Регистрация: 27.03.2009
Сообщений: 4,512
13.01.2011, 18:07 4
вот пример. работа через макрос
0
Вложения
Тип файла: xls Книга1.xls (43.0 Кб, 966 просмотров)
Заблокирован
13.01.2011, 18:18 5
Blakprizrak,
Откройте пустой файл Excel.
Сервис - Макрос - Начать запись - Сохранить в "Личная книга макросов" - ОК.
Введите букву "а" и нажмите Enter.
Сервис - Макрос - Остановить запись.
Сервис - Макрос - Редактор Visual Basic. Откроется редактор Visual Basic.
2 щ. левой кн. мыши по PERSONAL.XLS.
Щ. пр. кн. мыши по PERSONAL.XLS - Insert - Module.
Скопируйте с этого форума код, который написали вам, перейдите в редактор Visual Basic и вставьте текст в правую область, где мигает курсор
В 4 строке кода укажите место, где должны создавать папки:
Visual Basic
1
If Not IsEmpty(oCell) Then MkDir "C:\" & oCell
Сохраните изменения.
Вставьте курсор в любое место кода и нажмите стрелку на панели инструментов, чтобы запустить код.
В выбранной вами папке должно появится 3 папки: Лист1, Лист2 и Лист3.
Если не появились, то может быть путь указали неправильно в коде.
2
1 / 1 / 0
Регистрация: 12.01.2011
Сообщений: 5
13.01.2011, 18:30  [ТС] 6
Цитата Сообщение от unick12345 Посмотреть сообщение
вот пример. работа через макрос
Спасибо! Но я "чайник" во всем этом, можно попроще обьяснить как этим пользоваться, буду благодарен...

Добавлено через 10 минут
Цитата Сообщение от Busine2009 Посмотреть сообщение
Blakprizrak,
Откройте пустой файл Excel.
Сервис - Макрос - Начать запись - Сохранить в "Личная книга макросов" - ОК.
Введите букву "а" и нажмите Enter.
Сервис - Макрос - Остановить запись.
Сервис - Макрос - Редактор Visual Basic. Откроется редактор Visual Basic.
2 щ. левой кн. мыши по PERSONAL.XLS.
Щ. пр. кн. мыши по PERSONAL.XLS - Insert - Module.
Скопируйте с этого форума код, который написали вам, перейдите в редактор Visual Basic и вставьте текст в правую область, где мигает курсор
В 4 строке кода укажите место, где должны создавать папки:
Visual Basic
1
If Not IsEmpty(oCell) Then MkDir "C:\" & oCell
Сохраните изменения.
Вставьте курсор в любое место кода и нажмите стрелку на панели инструментов, чтобы запустить код.
В выбранной вами папке должно появится 3 папки: Лист1, Лист2 и Лист3.
Если не появились, то может быть путь указали неправильно в коде.
Спасибо огромное!!! работает!!! тока путь другой не получается сделать, сохраняет в корень диска "С"
0
Заблокирован
13.01.2011, 18:31 7
Blakprizrak,
напишите сюда путь, куда вы хотите сохранить.
0
1 / 1 / 0
Регистрация: 12.01.2011
Сообщений: 5
13.01.2011, 18:39  [ТС] 8
Цитата Сообщение от Busine2009 Посмотреть сообщение
Blakprizrak,
напишите сюда путь, куда вы хотите сохранить.
Например, диск "F", папка "архив"
0
Заблокирован
13.01.2011, 18:40 9
Visual Basic
1
If Not IsEmpty(oCell) Then MkDir "F:\Архив\" & oCell
1
1 / 1 / 0
Регистрация: 12.01.2011
Сообщений: 5
13.01.2011, 18:45  [ТС] 10
Цитата Сообщение от Busine2009 Посмотреть сообщение
Visual Basic
1
If Not IsEmpty(oCell) Then MkDir "F:\Архив\" & oCell
Простите, туплю, забыл после названия папки наклонную поставить... Спасибо, спасли меня от психушки, сегодня пробывал вручную, на 50 моя крыша помохала мне ручкой
1
Jerard
04.02.2011, 15:56 11
Доброго времени суток, Уважаемые!
Столкнулся с задачей похожей на вышеизложенную, но с маленьким нюансом.
Суть такова:
Необходимо создать некое подобие базы данных. В идеале должно выглядеть как папка с названием, предположим "Объект", в котором будет Excelевский файл и папка "Фотографии".
В Excelевском файле будет некая информация и два столбца с данными (столбцы будут содержать данные типа 1,2,3..n и 1-2,2-3,3-4...m). А в папке "Фотографии" будут соответственно папки с названиями "1","2","3"..."n", "1-2","2-3"..."m". (как сделать такую вещь с помощью вышеизложенного варианта я понял) Идем дальше. Нужно сделать так, что бы при нажатии на ячейку с данными, например "1", открывалась папка "1"?
Вариант с гиперссылками пробовал. Вот в таком виде " =ГИПЕРССЫЛКА("D:\Объект\Фотографии\"&A7&"") " в ячейке А7 стоит число 1. Потом протянув ячейку вниз получаем ссылки на А8,А9...и т.д. Способ хорош если эта база стационарна и находится в одном месте. При перемещении папки "Объект" в другую директорию, в первой ячейке где гиперссылка нужно вручную прописать новый путь, а потом протянуть по всему столбцу. Это очень неудобно, потому как планируется довольно частое копирование папки Объект другим пользователям. В каждом файле порядка 300 строк, а папок "Объект" будет в районе сотни...
И в итоге нужно что бы при перемещении папки "Объект" ссылки не сбивались и не нужно было вручную править пути.
Если у кого-то будут идеи и решения по этому поводу, буду премного благодарен!!!
Только если можно поподробнее...а то я в макросах...не очень...

Добавлено через 1 час 37 минут
Все-таки я допустил неточность...
Если сделать обычную гиперссылку на папку "1" из ячейки с данными 1, то при условии перемещения папки "Объект", содержащей Экселевский файл и папку "Фотографии", гиперссылки сохраняются. Проблема только в том, что бы автоматизировать присвоение гиперссылок ячейкам с другими данными (на подобии как " =ГИПЕРССЫЛКА("D:\Объект\Фотографии\"&A7&"") " и протянуть вниз). Ибо при наличии порядка 300 ячеек с данными, присваивать каждой гиперссылку вручную... а папок "Объект" порядка сотни....

Добавлено через 22 минуты
И еще один вопрос, что нужно изменить в коде макроса по созданию папок, что бы, например папка Фотографии и вложенные в нее папки с именами из Экселевского файла, создавались при запуске макроса в той директории где в данный момент находится папка?
asbtlt
01.10.2013, 16:23 12
Всем привет, у меня задача схожая но есть нюанс
мне необходимо чтобы создавалась папка с названием из ячейки которая только что изменилась.

Например, я вписал в новую ячейку название контрагента Рога и Копыта в соседней ячейке указал форму собственности ООО перешел к следующей ячейке, в этот момент на диске С: создается папка С:\Рога и копыта, ООО\ то есть я вижу из предыдущих записей как создаются папки но не могу найти инфы как это сделать на вновь создаваемые ячейки?
Как указать адрес ячейки не абсолютно, вида Range([A1], [A65536].End(xlUp)) а относительно положения выделенной ячейки? Например у меня выделена ячейка P4 соответственно и ячейки для названия папки будут T4+E4
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 4
15.02.2014, 11:26 13
Здравствуйте, уважаемые знатоки VBA. Возникла задача создания папки с именем ячейки, в которой, дополнительно бы создавались вложенные подпапки с уже определенными именами. Например, в ячейке введено слово – Документы. Как сделать, чтобы при запуске макроса создавалась цепочка папок C:\ Документы\ 1\ 2? Можно ли для этого как-то модифицировать макрос приведенный в начале этой темы?
0
15031 / 6358 / 1726
Регистрация: 24.09.2011
Сообщений: 9,976
15.02.2014, 14:09 14
Цитата Сообщение от Browning Zed Посмотреть сообщение
Возникла задача создания папки с именем ячейки, в которой, дополнительно бы создавались вложенные подпапки с уже определенными именами.
Либо несколько операторов MkDir, либо сразу весь путь: Ошибка в MkDir
0
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 4
15.02.2014, 19:30 15
Цитата Сообщение от Казанский Посмотреть сообщение
Либо несколько операторов MkDir, либо сразу весь путь: Ошибка в MkDir
Не подскажете, как должен выглядеть готовый макрос? Уровень моих познаний в VBA ноль целых, ноль тысячных.
0
15031 / 6358 / 1726
Регистрация: 24.09.2011
Сообщений: 9,976
15.02.2014, 20:15 16
Имя первой папки берется из активной ячейки
Visual Basic
1
2
3
4
5
6
7
8
9
Declare Function MakeSureDirectoryPathExists Lib "Imagehlp.dll" (ByVal strPath As String) As Long
    'проверяет наличие папки с указанным путем и создает, если ее нет
    'возвращает 0, если папку создать не удалось и не-0, если ОК
 
Sub CreatePathFromActiveCell()
Dim s$
s = "C:\" & ActiveCell & "\1\2\"
If MakeSureDirectoryPathExists(s) = 0 Then MsgBox "Не удалось создать путь " & s
End Sub
1
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 4
15.02.2014, 21:00 17
Казанский, Спасибо Вам огромное, все получилось!
А как сделать, чтобы название папки бралось не из активной ячейки, а из заранее определенной, как откорректировать данный макрос?
0
15031 / 6358 / 1726
Регистрация: 24.09.2011
Сообщений: 9,976
15.02.2014, 21:35 18
По имени ячейки на текущем листе: range("F5") , на др. листе sheets("Лист2").range("F5")
По координатам ячейки на текущем листе: cells(myRow, myCol) , на др. листе sheets("Лист2").cells(myRow, myCol)
Есть и другие способы.
А вообще, почитайте какой-нибудь букварь: Учебники, справочники, самоучители
1
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 4
16.02.2014, 09:36 19
Спасибо за подсказку, за изучение VBA обязательно возьмусь, как появится время свободное.
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 1
25.05.2016, 17:23 20
Цитата Сообщение от Vlanib Посмотреть сообщение
Sub MDir()
On Error Resume Next
For Each oCell In Range([A1], [A100].End(xlUp))
* * If Not IsEmpty(oCell) Then MkDir "C:" & oCell
Next
End Sub
Пользуюсь этим скриптом для создания папок все отлично. Но нужно чтобы в созданной папке A1 создавалась еще одна папка с именем B1. Голову сломал, если добавляю For Each iCell In Range([B1], [B100].End(xlUp)) и строку вношу изменения If Not IsEmpty(oCell) Then MkDir "C:" & oCell & "" & iCell
Все зацикливается в одной паке, прошу совета как правильно написать скрипт.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2016, 17:23

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Создание документа Excel. Как сделать границы ячеек?
Помогите пожалуйста. Пишу скрипт VBS. Set Excel = CreateObject("Excel.Application")

Excel / Очистка конкретный папок от старых папок и файлов с исключением
Доброго времени суток! Excel: Есть ListBox (в коде ListDel), в котором мы создаем список папок....

Создание папок в excel с именем ячеек
Здравствуйте. Помогите пожалуйста не грамотному )) Есть 3 листа в одной книге, в каждом порядка...

Создание папок с именами, записанными в текстовом файле
Здравствуйте. Помогите пожалуйста решить вот такую задачу. Есть .txt файл, в котором построчно...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.