powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как выбрать несколько файлов?!?
13 сообщений из 13, страница 1 из 1
Как выбрать несколько файлов?!?
    #34134033
Gouranga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуйста подскажите как можно выбрать несколько файлов а затем по очереди записать путь к этим файлам в переменную.
...
Рейтинг: 0 / 0
Как выбрать несколько файлов?!?
    #34134096
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбрать где?
...
Рейтинг: 0 / 0
Как выбрать несколько файлов?!?
    #34134113
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. CommonDialog1.Flags = cdlOFNAllowMultiselect + cdlOFNExplorer
...
Рейтинг: 0 / 0
Как выбрать несколько файлов?!?
    #34134135
Gouranga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из указаного места!!!

Сейчас я делая выборку по одному файлу с помощью модуля:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
Attribute VB_Name = "DialogOpenFile"
Option Compare Database
Option Explicit

Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Boolean
Declare Function GetSaveFileName Lib "comdlg32.dll" _
Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Boolean

Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As Long
nMaxCustrFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
Flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustrData As Long
lpfnHook As Long
lpTemplateName As Long
End Type

Public Const OFN_ALLOWMULTISELECT = &H200
Public Const OFN_CREATEPROMPT = &H2000
Public Const OFN_EXPLORER = &H80000
Public Const OFN_FILEMUSTEXIST = &H1000
Public Const OFN_HIDEREADONLY = &H4
Public Const OFN_NOCHANGEDIR = &H8
Public Const OFN_NODEREFERENCELINKS = &H100000
Public Const OFN_NONETWORKBUTTON = &H20000
Public Const OFN_NOREADONLYRETURN = &H8000
Public Const OFN_NOVALIDATE = &H100
Public Const OFN_OVERWRITEPROMPT = &H2
Public Const OFN_PATHMUSTEXIST = &H800
Public Const OFN_READONLY = &H1
Public Const OFN_SHOWHELP = &H10

Public Function OpenFile(ByVal InitDir As String, ByVal fName As String) As String
Dim strFile As String *  512 
Dim of As OPENFILENAME
Dim f As String
Dim P%
' Установка начальных значений структуры
of.hwndOwner = Application.hWndAccessApp
of.hInstance =  0 
of.lpstrCustomFilter =  0 
of.nMaxCustrFilter =  0 
of.lpfnHook =  0 
of.lpTemplateName =  0 
of.lCustrData =  0 
'Ниже вы можете изменить фильтры для поиска файлов
of.lpstrFilter = "Excel File (*.xls)" & Chr$( 0 ) & "*.xls" & Chr$( 0 ) & _
"All Files (*.*)" & Chr$( 0 ) & "*.*" & Chr$( 0 ) & Chr$( 0 )

of.nFilterIndex =  3 

of.lpstrFile = fName & String$( 512  - Len(fName),  0 )
of.nMaxFile =  511 

of.lpstrFileTitle = String$( 512 ,  0 )
of.nMaxFileTitle =  511 
' Ниже вы можете изменить заголовок окна
of.lpstrTitle = "Импорт Excel Файлов"

of.lpstrInitialDir = InitDir
' Можете изменить расширение файла
of.lpstrDefExt = "xls"

of.Flags = OFN_FILEMUSTEXIST + OFN_PATHMUSTEXIST
of.lStructSize = Len(of)
If GetOpenFileName(of) Then
P% = InStr( 1 , of.lpstrFile, Chr$( 0 ))
OpenFile = left(of.lpstrFile, P% -  1 )
Else
OpenFile = ""
End If
End Function

Но тыкать по одному очень утомительно. Может есть способ выделить сразу все необходимые файлы а потом записать их путь в масив например... или колекцию...
...
Рейтинг: 0 / 0
Как выбрать несколько файлов?!?
    #34134138
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2.
Dim strFileArray() As String

strFileArray() = Split(CommonDialog1.FileName, Chr$(0))

msgbox strFileArray(0)
...
Рейтинг: 0 / 0
Как выбрать несколько файлов?!?
    #34134154
Gouranga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn 1.
Код: plaintext
CommonDialog1.Flags = cdlOFNAllowMultiselect + cdlOFNExplorer
А можно немного прокоментировать? Немогу разобратся.
...
Рейтинг: 0 / 0
Как выбрать несколько файлов?!?
    #34134163
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На будущее совет автору: в следующий раз не держать фигу в кармане, прося помощи. Кто бы подумал, что там кроется не обычный CommonDialog, а что-то другое.
...
Рейтинг: 0 / 0
Как выбрать несколько файлов?!?
    #34134175
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GourangaVladConn 1.
Код: plaintext
CommonDialog1.Flags = cdlOFNAllowMultiselect + cdlOFNExplorer
А можно немного прокоментировать? Н ем огу разобратся.

Так ставится на форму контрол CommonDialog и устанавливаются флаги на множественную выборку файлов. Если вы разобрались с флагами у себя, то какие вопросы по старым добрым флагам у старины CommonDialog?
...
Рейтинг: 0 / 0
Как выбрать несколько файлов?!?
    #34134179
Gouranga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn простите не подумал
...
Рейтинг: 0 / 0
Как выбрать несколько файлов?!?
    #34134224
Gouranga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn подскажите пожалуйста где можно глянуть на пример???
...
Рейтинг: 0 / 0
Как выбрать несколько файлов?!?
    #34134268
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbceide/htm/project_84.asp
...
Рейтинг: 0 / 0
Как выбрать несколько файлов?!?
    #34134292
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После MSComDlg.FileOpenConstants поставьте точку, и выпадет вам список констант.
...
Рейтинг: 0 / 0
Как выбрать несколько файлов?!?
    #34137323
Gouranga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn огромное Вам спасибо!

Проблема решилась во так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim itm As Variant
Dim dlgOpen As Office.FileDialog
Set dlgOpen = Application.FileDialog(msoFileDialogOpen)

With dlgOpen
.AllowMultiSelect = True
.Show
For Each itm In .SelectedItems
' ...
Next
End With
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как выбрать несколько файлов?!?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]