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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск файлов в папке и её подпапках - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: _Boroda_, китин  
Поиск файлов в папке и её подпапках
AlexFans Дата: Понедельник, 09.06.2014, 11:56 | Сообщение № 21
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток.
Ваш скрипт просто шикарен, но есть один маленький вопрос. Можно ли сделать вывод не байтах, а в килобайтах (мегабайтах) соответственно. То есть по сути мне нужно 2 скрипта один выводит список с размером в КБ а другой в МБ.

Заранее благодарю.
 
Ответить
СообщениеДоброго времени суток.
Ваш скрипт просто шикарен, но есть один маленький вопрос. Можно ли сделать вывод не байтах, а в килобайтах (мегабайтах) соответственно. То есть по сути мне нужно 2 скрипта один выводит список с размером в КБ а другой в МБ.

Заранее благодарю.

Автор - AlexFans
Дата добавления - 09.06.2014 в 11:56
Alex_ST Дата: Понедельник, 09.06.2014, 12:08 | Сообщение № 22
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
Размер файла процедура выводит в том виде, в котором она считывает его из файловой системы - в байтах.
А уж добавить дополнительные столбцы для перевода ФОРМУЛАМИ байтов в кило/мега/гига и т.д.байты, надеюсь не проблема для любого пользователя Excel
Но, конечно, если так уж лень один раз написать формулу и одним даблкликом размножить её на весь дополнительный столбец :) , то можно и чуть макрос подпилить.
Для вывода в килобайтах в процедуре Sub GetAllFileNamesDict замените строку[vba]
Код
If .Name Like "*" & Mask Then oDict.Item(oDict.Count + 1) = Array(oDict.Count + 1, .Name, .Path, .DateCreated, .Size, .DateLastModified)
[/vba]на строку [vba]
Код
If .Name Like "*" & Mask Then oDict.Item(oDict.Count + 1) = Array(oDict.Count + 1, .Name, .Path, .DateCreated, .Size / 2 ^ 10, .DateLastModified)
[/vba]для мегабайт - на [vba]
Код
If .Name Like "*" & Mask Then oDict.Item(oDict.Count + 1) = Array(oDict.Count + 1, .Name, .Path, .DateCreated, .Size / 2 ^ 20, .DateLastModified)
[/vba]



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Понедельник, 09.06.2014, 12:32
 
Ответить
СообщениеРазмер файла процедура выводит в том виде, в котором она считывает его из файловой системы - в байтах.
А уж добавить дополнительные столбцы для перевода ФОРМУЛАМИ байтов в кило/мега/гига и т.д.байты, надеюсь не проблема для любого пользователя Excel
Но, конечно, если так уж лень один раз написать формулу и одним даблкликом размножить её на весь дополнительный столбец :) , то можно и чуть макрос подпилить.
Для вывода в килобайтах в процедуре Sub GetAllFileNamesDict замените строку[vba]
Код
If .Name Like "*" & Mask Then oDict.Item(oDict.Count + 1) = Array(oDict.Count + 1, .Name, .Path, .DateCreated, .Size, .DateLastModified)
[/vba]на строку [vba]
Код
If .Name Like "*" & Mask Then oDict.Item(oDict.Count + 1) = Array(oDict.Count + 1, .Name, .Path, .DateCreated, .Size / 2 ^ 10, .DateLastModified)
[/vba]для мегабайт - на [vba]
Код
If .Name Like "*" & Mask Then oDict.Item(oDict.Count + 1) = Array(oDict.Count + 1, .Name, .Path, .DateCreated, .Size / 2 ^ 20, .DateLastModified)
[/vba]

Автор - Alex_ST
Дата добавления - 09.06.2014 в 12:08
AlexFans Дата: Понедельник, 09.06.2014, 12:17 | Сообщение № 23
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Размер файла процедура выводит в том виде, в котором она считывает его из файловой системы - в байтах.
А уж добавить дополнительные столбцы для перевода ФОРМУЛАМИ байтов в кило/мега/гига и т.д.байты, надеюсь не проблема для любого пользователя Excel

Для меня к сожалению проблема... :(
Дело в том, что при пересчете получается совершенно другой размер. Я делю байты на 1024, но в итоге Windows показывает один размер, а получается другой. Может я что-то делаю не так?

Все, я разобрался. Посмотрел не на тот файл. Все получилось. Спасибо за совет!


Сообщение отредактировал AlexFans - Понедельник, 09.06.2014, 12:28
 
Ответить
Сообщение
Размер файла процедура выводит в том виде, в котором она считывает его из файловой системы - в байтах.
А уж добавить дополнительные столбцы для перевода ФОРМУЛАМИ байтов в кило/мега/гига и т.д.байты, надеюсь не проблема для любого пользователя Excel

Для меня к сожалению проблема... :(
Дело в том, что при пересчете получается совершенно другой размер. Я делю байты на 1024, но в итоге Windows показывает один размер, а получается другой. Может я что-то делаю не так?

Все, я разобрался. Посмотрел не на тот файл. Все получилось. Спасибо за совет!

Автор - AlexFans
Дата добавления - 09.06.2014 в 12:17
Alex_ST Дата: Понедельник, 09.06.2014, 12:31 | Сообщение № 24
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
Посмотрите в предыдущем посте. Я дописал как подпилить код.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеПосмотрите в предыдущем посте. Я дописал как подпилить код.

Автор - Alex_ST
Дата добавления - 09.06.2014 в 12:31
drugojandrew Дата: Понедельник, 27.11.2017, 13:40 | Сообщение № 25
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
В Excel 2016 при изменении в ячейке с путем к каталогу, в котором нужно искать файлы, вылезает ошибка "runtime error 28 out of stack space". После этого все работает, но файл закрыть невозможно - только через диспетчер задач. И проц грузит.
 
Ответить
СообщениеВ Excel 2016 при изменении в ячейке с путем к каталогу, в котором нужно искать файлы, вылезает ошибка "runtime error 28 out of stack space". После этого все работает, но файл закрыть невозможно - только через диспетчер задач. И проц грузит.

Автор - drugojandrew
Дата добавления - 27.11.2017 в 13:40
Alex_ST Дата: Понедельник, 27.11.2017, 22:53 | Сообщение № 26
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
Ну, вообще-то, Вы первый, кто жалуется на такое.
Значит, дело скорее всего не в процедуре, а в настройках вашего компа или установке офиса.
Т.к. эффект только у Вас, а у меня Офис-2003 :) , то проверить, естественно, не могу.
При изменении пути в ячейке С1 практически ничего не делается, кроме дописывания в конец слэша при его отсутствии:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Target, [C1]) Is Nothing Then [C1] = IIf(Right([C1], 1) = "\" Or [C1] = "", [C1], [C1] & "\")
End Sub
[/vba]Это должно работать в любом офисе.

Если у Вас не работает, то просто для начала закомментируйте стринг.
Если после этого заработает, то преобразуйте однострочный IIf в стандартный многострочный If , поставьте в начале BreakPoint и пройдите по шагам.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНу, вообще-то, Вы первый, кто жалуется на такое.
Значит, дело скорее всего не в процедуре, а в настройках вашего компа или установке офиса.
Т.к. эффект только у Вас, а у меня Офис-2003 :) , то проверить, естественно, не могу.
При изменении пути в ячейке С1 практически ничего не делается, кроме дописывания в конец слэша при его отсутствии:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Target, [C1]) Is Nothing Then [C1] = IIf(Right([C1], 1) = "\" Or [C1] = "", [C1], [C1] & "\")
End Sub
[/vba]Это должно работать в любом офисе.

Если у Вас не работает, то просто для начала закомментируйте стринг.
Если после этого заработает, то преобразуйте однострочный IIf в стандартный многострочный If , поставьте в начале BreakPoint и пройдите по шагам.

Автор - Alex_ST
Дата добавления - 27.11.2017 в 22:53
Alex_ST Дата: Среда, 11.04.2018, 21:54 | Сообщение № 27
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
Тут понадобилось на работе делать перечни файлов рабочих проектов.
Вспомнил про свою процедуру. Немного подполировал, убрал ИМХО абсолютно не востребованный поиск по маске.
В общем, что получилось смотрите в аттаче.
К сообщению приложен файл: __v.1.4.1.xls.7z (92.8 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеТут понадобилось на работе делать перечни файлов рабочих проектов.
Вспомнил про свою процедуру. Немного подполировал, убрал ИМХО абсолютно не востребованный поиск по маске.
В общем, что получилось смотрите в аттаче.

Автор - Alex_ST
Дата добавления - 11.04.2018 в 21:54
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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