Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2012, 19:27   #31
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

На счет мультиселекта, если через шифт выделять файлы снизу, то то список файлов в окне диалога располагаются по порядку, так что в листбоксе встанут как надо, только не забывать учитывать что в листбоксе счет начинается с 0.
Теперь по Борщёву........ шутка
Прежде чем работать с кодами формы и таблицы в ворде нужно систематизировать выбранные в файлдиалоге данные, я тут вам родил кодик, который разбивает файлы по типам, с ним можно хоть новую таблицу создавать, хоть в старую вставлять и кучу еще разных полезных вещей делать, а то Все мучиете эту тему и никак не добьете. По таблице, и по форме тоже отдельные предложения..........
Код:
Public ColletionTypeFiles As Collection
Public ColletionTypeFile As Collection
Public ColletionFiles As Collection
Public FSO As FileSystemObject

Public Sub CreateCollection(FD As FileDialog)
Dim booFType As Boolean, i As Long, j As Long
    Set FSO = New FileSystemObject
        If FD.SelectedItems.Count < 1 Then Exit Sub
            Set ColletionTypeFiles = New Collection
                For i = 1 To FD.SelectedItems.Count
                    If ColletionTypeFiles.Count = 0 Then
                        Set ColletionTypeFile = New Collection
                            ColletionTypeFiles.Add ColletionTypeFile
                            ColletionTypeFile.Add FSO.GetExtensionName(FD.SelectedItems(i))
                                Set ColletionFiles = New Collection
                                    ColletionTypeFile.Add ColletionFiles
                                    ColletionFiles.Add FD.SelectedItems(i)
                    Else
                        For j = 1 To ColletionTypeFiles.Count
                            Set ColletionTypeFile = ColletionTypeFiles(j)
                                If ColletionTypeFile.Item(1) = FSO.GetExtensionName(FD.SelectedItems(i)) Then
                                    Set ColletionFiles = ColletionTypeFile.Item(2)
                                        ColletionFiles.Add FD.SelectedItems(i)
                                        booFType = True
                                        Exit For
                                Else
                                    booFType = False
                                End If
                        Next j
                            If booFType = False Then
                                Set ColletionTypeFile = New Collection
                                ColletionTypeFiles.Add ColletionTypeFile
                                ColletionTypeFile.Add FSO.GetExtensionName(FD.SelectedItems(i))
                                    Set ColletionFiles = New Collection
                                        ColletionTypeFile.Add ColletionFiles
                                        ColletionFiles.Add FD.SelectedItems(i)
                            End If
                        End If
                    Next i
End Sub

Public Sub OpenFD()
Dim FD As FileDialog
    Set FD = Application.FileDialog(msoFileDialogFilePicker)
        FD.Show
        Call CreateCollection(FD)
End Sub
Сам по себе запускной код OpenFD, в сокращенном виде, без настроек фай диалога, запускает CreateCollection, который привязан к выбранным файлам, фильтр может быть любой. Если что не понятно пишите, потому, что без понимания этого кода, остальное бесполезно......
Пименов Александр вне форума Ответить с цитированием
Старый 30.01.2012, 13:37   #32
@лeся
Пользователь
 
Аватар для @лeся
 
Регистрация: 04.01.2012
Сообщений: 44
По умолчанию

хм у меня почему то ругается на объявленную переменную
FileSystemObject - говорит user-difined type not defined

в общих чертах вроде понятно )
@лeся вне форума Ответить с цитированием
Старый 30.01.2012, 13:51   #33
@лeся
Пользователь
 
Аватар для @лeся
 
Регистрация: 04.01.2012
Сообщений: 44
По умолчанию

да и у меня вроде работает ,домученный,другое дело что можно совершенствовать,бесконечно ))
@лeся вне форума Ответить с цитированием
Старый 30.01.2012, 15:13   #34
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

Ругается на FSO потому, что у Вас не подключен объект MicrosoftScriptingRuntime,
который у Вас есть Tools-->Reference, подключите его и Вам будет доступна работа с
FileSystemObject, это значительно облегчит работу с файловой системой или же сделайте
Public FSO as Object
а в коде
Set FSO = CreateObject("Scripting.FileSystemO bject")
но тогда вам вручную придется набирать команды для FSO.
Тот скрипт который я вам написал делает структуру файлов, которую можно использовать как применительно к форме так и применительно к таблице.
А таблицу снабдил бы закладками, общую закладку на всю таблицу, например "Таблица_файлов" по которой мы без ошибок обратимся к нужной таблице и отдельные закладки на каждый тип файлов, по ним тогда можно будет проверять, если в данном типе файл с именем или нет, и тогда добавлять
Пименов Александр вне форума Ответить с цитированием
Старый 30.01.2012, 19:05   #35
@лeся
Пользователь
 
Аватар для @лeся
 
Регистрация: 04.01.2012
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Пименов Александр Посмотреть сообщение
Ругается на FSO потому, что у Вас не подключен объект MicrosoftScriptingRuntime,
который у Вас есть Tools-->Reference, подключите его и Вам будет доступна работа с
FileSystemObject, это значительно облегчит работу с файловой системой или же сделайте
Public FSO as Object
а в коде
Set FSO = CreateObject("Scripting.FileSystemO bject")
но тогда вам вручную придется набирать команды для FSO.
Тот скрипт который я вам написал делает структуру файлов, которую можно использовать как применительно к форме так и применительно к таблице.
А таблицу снабдил бы закладками, общую закладку на всю таблицу, например "Таблица_файлов" по которой мы без ошибок обратимся к нужной таблице и отдельные закладки на каждый тип файлов, по ним тогда можно будет проверять, если в данном типе файл с именем или нет, и тогда добавлять
насчет последнего,там всё строго шаблон файла неподразумевает наличие иных таблиц.
так что tables(1) вполне годится,иначе пошлёт на Exit с предупреждением. Изначально думала насчет закладок,но решила что учитывая нестабильность и нестандартность мышления и соответственно действий некоторых, сойдет и так. Где хотят пусть вставляют. Они ведь и закладки могут подтереть

FilesObject подключу испробую метод,на будущее. Сильно не усердствую,поскольку и этот труд может оказаться неоправданным
Это я к тому чт оможно считать тему закрытой (если пожелаете ),не хочу больше утруждать

Последний раз редактировалось @лeся; 30.01.2012 в 19:09.
@лeся вне форума Ответить с цитированием
Старый 30.01.2012, 20:31   #36
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

Понятно, но оправдан или не оправдан - это как посмотреть, все равно Вы то какой-то опыт на будущее приобрели, а тема по таблицам, закладкам и их сохранение еще ой как не исчерпана.........
Пименов Александр вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
makefile: поменять имена файлов как? chechestor Общие вопросы C/C++ 1 14.01.2011 17:02
Как задать команду загрузки файлов данных на кнопку если каталог и имена файлов известны??? Andbuba Microsoft Office Excel 2 28.12.2008 17:28
Как вывести на экран имена файлов текущего каталога? (С++) Darw1n Помощь студентам 1 13.12.2008 11:10
Как получить имена нескольких файлов выделенных в OpenDialog Comer_Jus Общие вопросы Delphi 2 26.05.2008 19:47
как считать имена файлов из директории и поддерикторий в массив, ХЭЛП uraveselov Microsoft Office Excel 2 10.04.2008 09:50