- Список файлов
- Работа с файлами
Функции GetFileName и GetFilePath по сути аналогичны, и предназначены для вывода диалогового окна выбора файла
(при этом можно указать стартовую папку для поиска файла, и тип/расширение выбираемого файла)
Функция GetFilenamesCollection позволяет выборать сразу несколько файлов в одной папке.
Функция GetFolderPath работает также, только служит для вывода диалогового окна выбора папки.
Function GetFolderPath(Optional ByVal Title As String = "Выберите папку", _ Optional ByVal InitialPath As String = "c:") As String ' функция выводит диалоговое окно выбора папки с заголовком Title, ' начиная обзор диска с папки InitialPath ' возвращает полный путь к выбранной папке, или пустую строку в случае отказа от выбора Dim PS As String: PS = Application.PathSeparator With Application.FileDialog(msoFileDialogFolderPicker) If Not Right$(InitialPath, 1) = PS Then InitialPath = InitialPath & PS .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath If .Show <> -1 Then Exit Function GetFolderPath = .SelectedItems(1) If Not Right$(GetFolderPath, 1) = PS Then GetFolderPath = GetFolderPath & PS End With End Function Sub ПримерИспользования_GetFolderPath() ПутьКПапке = GetFolderPath("Заголовок окна", ThisWorkbook.Path) ' запрашиваем имя папки If ПутьКПапке = "" Then Exit Sub ' выход, если пользователь отказался от выбора папки MsgBox "Выбрана папка: " & ПутьКПапке, vbInformation End Sub
Function GetFilePath(Optional ByVal Title As String = "Выберите файл для обработки", _ Optional ByVal InitialPath As String = "c:", _ Optional ByVal FilterDescription As String = "Книги Excel", _ Optional ByVal FilterExtention As String = "*.xls*") As String ' функция выводит диалоговое окно выбора файла с заголовком Title, ' начиная обзор диска с папки InitialPath ' возвращает полный путь к выбранному файлу, или пустую строку в случае отказа от выбора ' для фильтра можно указать описание и расширение выбираемых файлов On Error Resume Next With Application.FileDialog(msoFileDialogOpen) .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath .Filters.Clear: .Filters.Add FilterDescription, FilterExtention If .Show <> -1 Then Exit Function GetFilePath = .SelectedItems(1): PS = Application.PathSeparator End With End Function Sub ПримерИспользования_GetFilePath() ИмяФайла = GetFilePath("Выберите файл Word", , "Документы Word", "*.doc") ' запрашиваем имя файла If ИмяФайла = "" Then Exit Sub ' выход, если пользователь отказался от выбора файла MsgBox "Выбран файл: " & ИмяФайла, vbInformation End Sub
Ниже представлены функции для вызова диалоговых окон выбора файлов и папок средствами VBA.
Функции GetFileName и GetFilePath по сути аналогичны, и предназначены для вывода диалогового окна выбора файла
(при этом можно указать стартовую папку для поиска файла, и типрасширение выбираемого файла)
Функция GetFilenamesCollection позволяет выборать сразу несколько файлов в одной папке.
Функция GetFolderPath работает аналогично, только служит для вывода диалогового окна выбора папки.
Function GetFileName(Optional ByVal Title As String = "Выберите файл для обработки", _ Optional ByVal InitialPath, _ Optional ByVal MyFilter As String = "Книги Excel (*.xls*),") As String ' функция выводит диалоговое окно выбора папки с заголовком Title, ' начиная обзор диска с папки InitialPath ' возвращает полный путь к выбранной папке, или пустую строку в случае отказа от выбора If Not IsMissing(InitialPath) Then On Error Resume Next: ChDrive Left(InitialPath, 1) ChDir InitialPath ' выбираем стартовую папку End If res = Application.GetOpenFilename(MyFilter, , Title, "Открыть") ' вывод диалогового окна GetFileName = IIf(VarType(res) = vbBoolean, "", res) ' пустая строка при отказе от выбора End Function Sub ПримерИспользования_GetFileName() ИмяФайла = GetFileName("Заголовок окна", ThisWorkbook.Path) ' запрашиваем имя файла ' ===================== другие варианты вызова функции ===================== ' текстовые файлы, стартовая папка не указана ' ИмяФайла = GetFileName("Выберите текстовый файл", , "Текстовые файлы (*.txt),") ' файлы любого типа из папки "C:Windows" ' ИмяФайла = GetFileName(, "C:Windows", "") ' ========================================================================== If ИмяФайла = "" Then Exit Sub ' выход, если пользователь отказался от выбора файла MsgBox "Выбран файл: " & ИмяФайла, vbInformation End Sub
Function GetFolderPath(Optional ByVal Title As String = "Выберите папку", _ Optional ByVal InitialPath As String = "c:") As String ' функция выводит диалоговое окно выбора папки с заголовком Title, ' начиная обзор диска с папки InitialPath ' возвращает полный путь к выбранной папке, или пустую строку в случае отказа от выбора Dim PS As String: PS = Application.PathSeparator With Application.FileDialog(msoFileDialogFolderPicker) If Not Right$(InitialPath, 1) = PS Then InitialPath = InitialPath & PS .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath If .Show <> -1 Then Exit Function GetFolderPath = .SelectedItems(1) If Not Right$(GetFolderPath, 1) = PS Then GetFolderPath = GetFolderPath & PS End With End Function Sub ПримерИспользования_GetFolderPath() ПутьКПапке = GetFolderPath("Заголовок окна", ThisWorkbook.Path) ' запрашиваем имя папки ' ===================== другие варианты вызова функции ===================== ' стартовая папка не указана, заголовок окна по умолчанию ' ПутьКПапке = GetFolderPath ' обзор папок начинается с папки "Рабочий стол" ' СтартоваяПапка = CreateObject("WScript.Shell").SpecialFolders("Desktop") ' ПутьКПапке = GetFolderPath("Выберите папку на рабочем столе", СтартоваяПапка) ' ========================================================================== If ПутьКПапке = "" Then Exit Sub ' выход, если пользователь отказался от выбора папки MsgBox "Выбрана папка: " & ПутьКПапке, vbInformation End Sub
Function GetFilePath(Optional ByVal Title As String = "Выберите файл для обработки", _ Optional ByVal InitialPath As String = "c:", _ Optional ByVal FilterDescription As String = "Книги Excel", _ Optional ByVal FilterExtention As String = "*.xls*") As String ' функция выводит диалоговое окно выбора файла с заголовком Title, ' начиная обзор диска с папки InitialPath ' возвращает полный путь к выбранному файлу, или пустую строку в случае отказа от выбора ' для фильтра можно указать описание и расширение выбираемых файлов On Error Resume Next With Application.FileDialog(msoFileDialogOpen) .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath .Filters.Clear: .Filters.Add FilterDescription, FilterExtention If .Show <> -1 Then Exit Function GetFilePath = .SelectedItems(1): PS = Application.PathSeparator End With End Function Sub ПримерИспользования_GetFilePath() ИмяФайла = GetFilePath("Выберите файл Word", , "Документы Word", "*.doc") ' запрашиваем имя файла ' ===================== другие варианты вызова функции ===================== ' текстовые файлы, стартовая папка не указана ' ИмяФайла = GetFilePath("Выберите текстовый файл", , "Текстовые файлы", "*.txt") ' файлы любого типа из папки "C:Windows" ' ИмяФайла = GetFilePath(, "C:Windows", , "*") ' ========================================================================== If ИмяФайла = "" Then Exit Sub ' выход, если пользователь отказался от выбора файла MsgBox "Выбран файл: " & ИмяФайла, vbInformation End Sub
Function GetFilenamesCollection(Optional ByVal Title As String = "Выберите файлы для обработки", _ Optional ByVal InitialPath As String = "c:") As FileDialogSelectedItems ' функция выводит диалоговое окно выбора нескольких файлов с заголовком Title, ' начиная обзор диска с папки InitialPath ' возвращает массив путей к выбранным файлам, или пустую строку в случае отказа от выбора With Application.FileDialog(3) ' msoFileDialogFilePicker .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath If .Show <> -1 Then Exit Function Set GetFilenamesCollection = .SelectedItems End With End Function Sub ПримерИспользования_GetFilenamesCollection() Dim СписокФайлов As FileDialogSelectedItems Set СписокФайлов = GetFilenamesCollection("Заголовок окна", ThisWorkbook.Path) ' выводим окно выбора ' ===================== другие варианты вызова функции ===================== ' стартовая папка не указана, заголовок окна по умолчанию Set СписокФайлов = GetFilenamesCollection ' обзор файлов начинается с папки "Рабочий стол" СтартоваяПапка = CreateObject("WScript.Shell").SpecialFolders("Desktop") Set СписокФайлов = GetFilenamesCollection("Выберите файлы на рабочем столе", СтартоваяПапка) ' ========================================================================== If СписокФайлов Is Nothing Then Exit Sub ' выход, если пользователь отказался от выбора файлов For Each File In СписокФайлов Debug.Print File Next End Sub
Ещё один вариант кода (который я использую) для выбора файла
Его отличие — функция запоминает папку, из которой последний раз выбирался файл,
и при повторном запуске диалогового окна выбора файла,
обзор папок будет начат с той папки, откуда последний раз был взят файл.
Sub AttachFile_test() ' пример использования Filename$ = GetFilePath() If Filename$ = "" Then Exit Sub MsgBox "Выбран файл: " & Filename$ End Sub Function GetFilePath(Optional ByVal Title As String = "Выберите файл для обработки", _ Optional ByVal InitialPath As String = "c:", _ Optional ByVal FilterDescription As String = "Файлы счетов", _ Optional ByVal FilterExtention As String = "*.*") As String On Error Resume Next With Application.FileDialog(msoFileDialogOpen) .ButtonName = "Выбрать": .Title = Title: .InitialFileName = GetSetting(Application.Name, "GetFilePath", "folder", InitialPath) .Filters.Clear: .Filters.Add FilterDescription, FilterExtention If .Show <> -1 Then Exit Function GetFilePath = .SelectedItems(1) folder$ = Left(.SelectedItems(1), InStrRev(.SelectedItems(1), "")) SaveSetting Application.Name, "GetFilePath", "folder", folder$ End With End Function
- 214352 просмотра
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
Хитрости »
17 Июнь 2015 147331 просмотров
Диалоговое окно выбора файлов/папки
Часто при работе с файлами и написании кодов начинающие «кодить» в VBA сталкиваются с необходимостью предоставить пользователю возможность самостоятельного выбора файлов: либо всех в указанной папке, либо каких-то отдельных. Конечно, можно жестко в коде написать нечто вроде: «C:DocumentsFilesКнига1.xls», но это требует не только наличия именно диска С, но и полной структуры папок и имен файлов. Это очень неудобно в большинстве случаев и куда чаще необходимо дать пользователю возможность самому указать имя файла. Записывать в ячейку листа полный путь и имя весьма непрактично и часто для неискушенного пользователя вызывает только «отторжение» от программы. В статье Просмотреть все файлы в папке я приводил пример кода, который просматривает все файлы в указанной папке и папка при этом выбирается сами пользователем из привычного по работе с Windows диалога. Там используется диалог выбора папок. Именно на этом я и хочу сделать акцент в этой статье — рассказать про некоторые способы вызова подобных диалогов для выбора файлов или папки. Так же обращу внимание на некоторые вещи, которые следует учитывать при использовании того или иного типа диалогов.
- Диалог выбора файлов Applicaton.GetOpenFileName
- Диалог выбора файлов FileDialog(msoFileDialogFilePicker)
- Диалог выбора папки FileDialog(msoFileDialogFolderPicker)
- Диалог выбора папки через Shell
- Диалог сохранения файла SaveAs
Если рассматривать наиболее простые варианты, то их два. Выбрать файлы можно через Applicaton.GetOpenFileName или через Application.FileDialog. Отличия в них есть, но я заострю внимание на главном: GetOpenFileName будет работать в любой версии Excel, а класс FileDialog только начиная с Excel 2002, т.к. именно в этой версии впервые был использован класс FileDialog. Это стоит учитывать при разработке.
Диалог выбора файлов Applicaton.GetOpenFileName
Параметры:
Application.GetOpenFilename([FileFilter], [FilterIndex], [Title], [ButtonText], [MultiSelect])
По сути я часто использую именно его, т.к. это универсальный метод и в нем есть все, что лично мне необходимо: выбрать определенные типы файлов позволяет, возможность запрета выбора нескольких файлов сразу есть.
FileFilter | Указываются типы файлов, которые будут отображаться в диалоговом окне выбора. Например, если указать «Excel files(*.xls*),*.xls*», то возможно будет выбрать только файлы Excel(с расширением, начинающимся на .xls — .xls, .xlsx, .xlsb, .xlsm и т.д.). Если указать «Text files(*.txt),*.txt», то можно будет выбрать только текстовые файлы с расширением .txt. Так же можно указать более одного типа расширений: «Excel files(*.xls*),*.xls*,Text files(*.txt),*.txt». По умолчанию тип файлов в диалоговом окне будет принадлежать первому указанному типу файлов(*.xls*). Но можно указать любой из перечисленных типов при помощи аргумента FilterIndex. Так же можно указать выбор любых типов файлов: «All files(*.*),*.*» |
FilterIndex |
Если аргументом FileFilter указано более одного типа файлов(расширений), то этот аргумент указывает какой именно тип использовать. Например, следующая строка по умолчанию назначает выбор текстовых типов файлов:
avFiles = Application.GetOpenFilename _ ("Excel files(*.xls*),*.xls*,Text files(*.txt),*.txt", 2, _ "Выбрать текстовые или Excel файлы", , True)
|
Title | Текст заголовка диалогового окна. Если указать «Выбрать текстовые или Excel файлы», то именно этот текст будет в заголовке. Если не указывать, то будет текст по умолчанию(нечто вроде «Открытие документа») |
ButtonText | Данный аргумент доступен только для ПК под управлением Macintosh(MAC). Назначает текст для кнопки диалогового окна Открыть. Для владельцев Windows этот текст всегда будет «Открыть» |
MultiSelect |
Указывает, может быть выбран только один файл или несколько:
По умолчанию принимает значение False avFiles = Application.GetOpenFilename _ ("Excel files(*.xls*),*.xls*,Text files(*.txt),*.txt", 2, _ "Выбрать текстовые или Excel файлы", , False) Выбор нескольких файлов: avFiles = Application.GetOpenFilename _ ("Excel files(*.xls*),*.xls*,Text files(*.txt),*.txt", 2, _ "Выбрать текстовые или Excel файлы", , True) |
Пример применения диалога Application.GetOpenFilename
Sub ShowGetOpenDialod() Dim avFiles 'по умолчанию к выбору доступны файлы Excel(xls,xlsx,xlsm,xlsb) avFiles = Application.GetOpenFilename _ ("Excel files(*.xls*),*.xls*", 1, "Выбрать Excel файлы", , False) If VarType(avFiles) = vbBoolean Then 'была нажата кнопка отмены - выход из процедуры Exit Sub End If 'avFiles - примет тип String MsgBox "Выбран файл: '" & avFiles & "'", vbInformation, "www.excel-vba.ru" End Sub
В данном случае совершенно неважно указан ли выбор только одного файла или нескольких. Может поменяться только способ обработки полученного результата. Если параметр MultiSelect установлен в False, то переменная avFiles примет тип String, т.е. это будет одна строка. Предположим, что была выбрана книга Excel. Тогда открыть её можно будет как обычно это делается при использовании переменной:
Если же параметр MultiSelect установлен в True, то переменная avFiles примет тип Array — массив строк, в котором будут записаны все пути и имена выбранных файлов. Обрабатывать в таком случае следует циклом:
'avFiles - примет тип Array For Each x In avFiles Workbooks.Open x Next
В приложенном к статье файле приведены две процедуры с использованием этого типа диалога и обработкой файлов с параметром MultiSelect, установленным в True и False.
Диалог выбора файлов FileDialog(msoFileDialogFilePicker)
У этого диалога тоже есть параметры и они очень схожи с таковыми в Application.GetOpenFilename:
Ниже в статье примера кода с применением всех описанных параметров
AllowMultiSelect |
Указывает, может быть выбран только один файл или несколько:
|
Title | Текст заголовка диалогового окна. Если указать «Выбрать текстовые или Excel файлы», то именно этот текст будет в заголовке. Если не указывать, то будет текст по умолчанию(нечто вроде «Открытие документа») |
Filters |
Перечисляются типы файлов, которые будут отображаться в диалоговом окне выбора. Для добавления типа файла(расширения) необходимо использовать метод Add: .Filters.Add([Description],[Extensions],[Position])
Тип файлов, который будет показан по умолчанию при вызове диалога определяется свойством FilterIndex диалога FileDialog. Каждый новый тип файлов добавляется новым Add: .Filters.Add "Excel files", "*.xls*;*.xla*", 1 'добавляем возможность выбора файлов Excel .Filters.Add "Text files", "*.txt", 2 'добавляем возможность выбора текстовых файлов |
FilterIndex | Назначает тип файлов, который будет выбран по умолчанию из всех перечисленных в коллекции Filters при вызове диалога |
InitialFileName | Этим параметром можно задать начальную папку, на которой будет открыт диалог:
.InitialFileName = "С:Temp"
Если при этом еще добавить имя файла, то в поле диалога Имя файла будет так же отображено это имя: .InitialFileName = "С:TempКнига1.xlsx"
Я лично не рекомендую указывать имя файла, т.к. после показа диалога этот файл автоматически будет выбран, что не всегда бывает правильным. Но все зависит от задач. Если пользователь не выберет самостоятельно ни одного файла, то ответом диалога будет именно файл с указанным именем(Книга1.xlsx). Если такого файла не окажется в папке, то диалог выдаст предупреждение, что такого файла нет. |
InitialView | Данный параметр определяет внешний вид и структуру окна диалога. Доступно 9 вариантов:
При использовании данного параметра следует учитывать, что на разных операционных системах могут быть доступны не все варианты. Поэтому прежде чем использовать лучше убедиться, что на конечных ПК поддерживается указанный тип. В принципе ничего страшного не произойдет — будет просто показано окно с видом по умолчанию. Но куда правильнее в разработке придерживаться однотипного вида на всех ПК. |
SelectedItems | Возвращает коллекцию выбранных файлов. В отличии от Application.GetOpenFilename всегда возвращается массив строк, поэтому можно всегда использовать цикл для открытия файлов, даже если параметр AllowMultiSelect установлен в False:
For Each x In .SelectedItems Workbooks.Open x Next Так же можно отбирать только отдельные файлы по индексам или организовать цикл иначе: For lf = 1 to .SelectedItems.Count x = .SelectedItems(lf) Workbooks.Open x Next Нумерация строк в SelectedItems всегда начинается с 1 |
Show | Пожалуй, самый важный метод в диалоге — отвечает за показ диалога. При этом метод Show возвращает ответ в виде целого числа:
Это можно(точнее нужно!) использовать, чтобы не продолжать выполнение кода, если нажата кнопка Отмены: If .Show = 0 Then Exit Sub 'была нажата кнопка отмены |
Пример вызова диалога выбора файлов:
Sub ShowFileDialog() Dim oFD As FileDialog Dim x, lf As Long 'назначаем переменной ссылку на экземпляр диалога Set oFD = Application.FileDialog(msoFileDialogFilePicker) With oFD 'используем короткое обращение к объекту 'так же можно без oFD 'With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = False .Title = "Выбрать файлы отчетов" 'заголовок окна диалога .Filters.Clear 'очищаем установленные ранее типы файлов .Filters.Add "Excel files", "*.xls*;*.xla*", 1 'устанавливаем возможность выбора только файлов Excel .Filters.Add "Text files", "*.txt", 2 'добавляем возможность выбора текстовых файлов .FilterIndex = 2 'устанавливаем тип файлов по умолчанию - Text files(Текстовые файлы) .InitialFileName = "С:TempКнига1.xlsx" 'назначаем папку отображения и имя файла по умолчанию .InitialView = msoFileDialogViewDetails 'вид диалогового окна(доступно 9 вариантов) If .Show = 0 Then Exit Sub 'показывает диалог 'цикл по коллекции выбранных в диалоге файлов For lf = 1 To .SelectedItems.Count x = .SelectedItems(lf) 'считываем полный путь к файлу Workbooks.Open x 'открытие книги 'можно также без х 'Workbooks.Open .SelectedItems(lf) Next End With End Sub
Диалог выбора папки
Диалог выбора папки необходим в случаях, когда файлов в папке много и обработать нужно все эти файлы. Пример такой обработки я уже выкладывал в статье Просмотреть все файлы в папке. Здесь проще всего использовать появившийся в 2002 Excel диалог Application.FileDialog. Его параметры практически такие же, как у Application.FileDialog(msoFileDialogFilePicker) только их меньше доступно для применения:
Title | Текст заголовка диалогового окна. Если указать «Выбрать папку с отчетами», то именно этот текст будет в заголовке. Если не указывать, то будет текст по умолчанию(нечто вроде «Открыть папку») |
InitialFileName | Этим параметром можно задать начальную папку, на которой будет открыт диалог:
.InitialFileName = "С:Temp"
|
InitialView | Данный параметр определяет внешний вид и структуру окна диалога. Доступно 9 вариантов:
При использовании данного параметра следует учитывать, что на разных операционных системах могут быть доступны не все варианты. Поэтому прежде чем использовать лучше убедиться, что на конечных ПК поддерживается указанный тип. В принципе ничего страшного не произойдет — будет просто показано окно с видом по умолчанию. Но куда правильнее в разработке придерживаться однотипного вида на всех ПК. |
SelectedItems | Возвращает коллекцию с одним элементом, в котором содержится путь к выбранной папке. Нумерация строк в SelectedItems всегда начинается с 1, но т.к. выбор нескольких папок невозможен, то всегда указывается 1: x = .SelectedItems(1) |
ButtonName | Назначает текст кнопки, которой подтверждается выбор папки. Может содержать не более 51 знака(чего как правило достаточно). |
Show | Метод, который вызывает показ диалога с выбранными параметрами. Возвращает ответ в виде целого числа:
Это можно(точнее нужно!) использовать, чтобы не продолжать выполнение кода, если нажата кнопка Отмены: If .Show = 0 Then Exit Sub 'была нажата кнопка отмены |
Пример вызова диалога выбора папки:
Sub ShowFolderDialog() Dim oFD As FileDialog Dim x, lf As Long 'назначаем переменной ссылку на экземпляр диалога Set oFD = Application.FileDialog(msoFileDialogFolderPicker) With oFD 'используем короткое обращение к объекту 'так же можно без oFD 'With Application.FileDialog(msoFileDialogFolderPicker) .Title = "Выбрать папку с отчетами" '"заголовок окна диалога .ButtonName = "Выбрать папку" .Filters.Clear 'очищаем установленные ранее типы файлов .InitialFileName = "C:Temp" '"назначаем первую папку отображения .InitialView = msoFileDialogViewLargeIcons 'вид диалогового окна(доступно 9 вариантов) If .Show = 0 Then Exit Sub 'показывает диалог 'цикл по коллекции выбранных в диалоге файлов x = .SelectedItems(1) 'считываем путь к папке MsgBox "Выбрана папка: '" & x & "'", vbInformation, "www.excel-vba.ru" End With End Sub
Диалог выбора папки через Shell
Диалог Application.FileDialog(msoFileDialogFolderPicker) всем хорош и удобен, кроме одного: как я уже упоминал, он стал доступен из VBA только начиная с 2002 Excel. Плюс, описанные выше диалоги не работают в Outlook — он просто лишен хоть какой-либо реализации выбора папок или файлов. Поэтому дополню статью еще одним вариантом показа диалога выбора папки — с помощью объекта Shell. Этот вариант выбора папки будет работать и в Outlook и в любом другом приложении.
Shell.BrowseForFolder([Hwnd], [sTitle], [iOptions], [vRootFolder])
Hwnd | Дескриптор окна, к которому будет относится диалог. Как правило указывается 0 |
sTitle | Поясняющий текст, который будет отображен в диалоге. Подобие заголовка окна. Может быть любым текстом, например «Выбрать папку с отчетами» |
iOptions | Дополнительные параметры для диалога. Рекомендуется использовать 0. Но можно попробовать и пару других вариантов. Например, если указать 20, то в диалоговом окне появится дополнительное текстовое поле, в котором будет отображено имя выбранной папки. |
vRootFolder | Аналогично InitialFileName в рассмотренных выше диалогах. Задает начальную папку, на которой диалог будет открыт после запуска. |
Пример вызова диалога выбора папки через Shell:
Sub GetFolderDialog_Shell() On Error Resume Next Dim objShellApp As Object, objFolder As Object, ulFlags Dim x As String Set objShellApp = CreateObject("Shell.Application") 'ulFlags - числовой код, определяющий вид отображаемого окна и некоторые параметры ' ulFlags = 0 - наиболее часто применяемый. Лучше использовать всегда именно 0 ' ulFlags = 1 - не отображать Корзину ' ulFlags = 2 - не включать сетевые папки ' ulFlags = 20 - добавляется тестовое поле с отображением имени выбранной папки ' ulFlags = 16 - отображать EditBox для ввода полного пути с клавиатуры ' ulFlags = 16384 - можно так же выбирать файлы. 'Некоторые константы можно комбинировать. Например если указать 1 + 16384 - то можно будет выбирать файлы ulFlags = 0 Set objFolder = objShellApp.BrowseForFolder(0, "Выбрать папку с отчетами", ulFlags, "C:Temp")'" x = objFolder.Self.Path 'записываем в переменную путь к папке If Err.Number <> 0 Then MsgBox "Папка не выбрана!", vbInformation, "www.excel-vba.ru" Else MsgBox "Выбрана папка: '" & x & "'", vbInformation, "www.excel-vba.ru" End If End Sub
Конечно, диалог подобный выглядит довольно убого, особенно на современных операционных системах. Но он работает в любых версиях офиса и в любом приложении, в том числе в Outlook. Порой это бывает полезней красоты.
Скачать пример:
Tips_Macro_GetOpenFileFolder.xls (100,0 KiB, 3 740 скачиваний)
Диалог сохранения файла SaveAs
Еще один вид диалогового окна — запрос имени и места сохранения файла.
Параметры:
Application.GetSaveAsFilename([InitialFileName], [FileFilter], [FilterIndex], [Title], [ButtonText])
Универсальный диалог, работающий во всех версиях Excel, начиная с 2000
InitialFileName |
Можно указать путь и имя файла, которые будут использованы в качестве шаблона для сохранения. По умолчанию в диалоге отображается папка, которая была использована в последний раз в текущем сеансе Excel. Если диалог вызывается впервые, то будет показана для сохранения файлов по умолчанию(задается из самого Excel: Файл(File) —Параметры(Options) —Сохранение(Save) —Расположение локальных файлов по умолчанию(Default local file location)). Показываем диалог со стартовой папкой на той книге, в которой сам макрос, без указания имени сохраняемой книги: sToSavePath = Application.GetSaveAsFilename(InitialFileName:=ThisWorkbook.Path) Показываем диалог со стартовой папкой на той книге, в которой сам макрос и именем сохраняемой книги «SaveAs.xlsm»: sToSavePath = Application.GetSaveAsFilename(InitialFileName:="SaveAs.xlsm", FileFilter:="Excel files (*.xlsm), *.xlsm") Здесь следует обратить внимание на один важный момент: если необходимо помимо стартовой папки указать еще и имя файла, то в обязательном порядке надо указывать так же аргумент FileFilter. Если его не указывать, то InitialFileName просто откроет указанную папку, т.к. не поймет файлы какого типа надо отображать. Либо вместо «SaveAs.xlsm» надо будет указывать «SaveAs.*», что я лично настоятельно не рекомендую делать. |
FileFilter | Указываются типы файлов, которые будут отображаться в диалоговом окне выбора. Должен совпадать с тем типом, с которым собираемся сохранять файл. Например, если указать «Excel files(*.xls*),*.xls*», то возможно будет выбрать только тип файлов Excel(с расширением, начинающимся на .xls — .xls, .xlsx, .xlsb, .xlsm и т.д.). Если указать «Text files(*.txt),*.txt», то только текстовые файлы с расширением .txt. Так же можно указать более одного типа расширений: «Excel files(*.xls*),*.xls*,Text files(*.txt),*.txt». По умолчанию тип файлов в диалоговом окне будет принадлежать первому указанному типу файлов(*.xls*). Но можно указать любой из перечисленных типов при помощи аргумента FilterIndex. Так же можно указать выбор любых типов файлов: «All files(*.*),*.*» |
FilterIndex |
Если аргументом FileFilter указано более одного типа файлов(расширений), то этот аргумент указывает какой именно тип использовать. Например, следующая строка по умолчанию назначает выбор и сохранение файла в текстовый:
avFiles = Application.GetSaveAsFilename _
(InitialFileName:=ThisWorkbook.Path, FileFilter:="Excel files(*.xls*),*.xls*,Text files(*.txt),*.txt", FilterIndex:=2)
|
Title | Текст заголовка диалогового окна. Если указать «Выбрать текстовые или Excel файлы», то именно этот текст будет в заголовке. Если не указывать, то будет текст по умолчанию(нечто вроде «Сохранение документа») |
ButtonText | Данный аргумент доступен только для ПК под управлением Macintosh(MAC). Назначает текст для кнопки диалогового окна Сохранить. Для владельцев Windows этот текст всегда будет «Сохранить» |
Что еще важно знать: сам по себе вызов диалога GetSaveAsFilename ничего не сохраняет — он только создает путь для сохраняемого файла. Сохранять придется принудительно после выбора места и имени.
Пример применения диалога Application.GetSaveAsFilename
Sub ShowGetSaveAsDialod() Dim sToSavePath sToSavePath = Application.GetSaveAsFilename( _ InitialFileName:=ThisWorkbook.Path, _ FileFilter:="Excel files(*.xls*),*.xls*,Text files(*.txt),*.txt", _ FilterIndex:=2, _ Title:="Сохранить файл") 'если нажали Отмена - завершаем процедуру ничего не сохраняя If VarType(sToSavePath) = vbBoolean Then Exit Sub End If 'непосредственно сохранение файла ThisWorkbook.SaveAs Filename:=sToSavePath, FileFormat:=ThisWorkbook.FileFormat End Sub
Здесь тоже есть нюанс — метод SaveAs имеет два важных аргумента:
1. Filename — путь и имя сохраняемого файла. Здесь должно быть все понятно. Указываем то, что выбрали в диалоге.
2. FileFormat — формат сохраняемого файла. При этом не текстовое представление(как в диалоге «xls» или «txt»), а одна из предустановленных констант формата файла. Вот основные константы:
Константа Excel | Числовая константа | Расшифровка |
---|---|---|
xlOpenXMLWorkbookMacroEnabled | 51 | xlsm — книга Excel |
xlOpenXMLWorkbookMacroEnabled | 52 | xlsm — книга Excel с поддержкой макросов |
xlExcel12 | 50 | xlsb — двоичная книга Excel (с поддержкой макросов) |
xlOpenXMLAddIn | 55 | xlam — надстройка Excel |
xlOpenXMLTemplate | 54 | xltx — шаблон Excel |
xlOpenXMLTemplateMacroEnabled | 53 | xltm — шаблон Excel с поддержкой макросов |
xlExcel8 | 56 | xls — книга Excel(97 — 2003) |
xlAddIn | 18 | xla — надстройка Excel(97 — 2003) |
xlTemplate | 17 | xlt — шаблон Excel(97 — 2003) |
xlCurrentPlatformText | -4158 | txt — текстовый файл с разделителями табуляции |
xlUnicodeText | 42 | txt — текстовый файл в кодировке Юникод |
xlCSV | 6 | csv — CSV(разделитель запятая) |
xlCSVMSDOS | 24 | csv — CSV(MS — DOS) |
XlFileFormat | 62 | csv — CSV UTF-8(разделитель запятая) |
xlTypePDF | 0 | pdf — файл в формате PDF |
Пример использования констант в диалогах Application.GetSaveAsFilename
Сохраняем файл с форматом xlsm — файл с поддержкой макросов. Для этого ищем в таблице выше расширение xlsm и берем либо константу Excel либо числовую константу:
Sub ShowGetSaveAsDialod() Dim sToSavePath sToSavePath = Application.GetSaveAsFilename( _ InitialFileName:=ThisWorkbook.Path & "Report.xlsm", _ FileFilter:="Excel files(*.xlsm),*.xlsm") 'если нажали Отмена - завершаем процедуру ничего не сохраняя If VarType(sToSavePath) = vbBoolean Then Exit Sub End If 'непосредственно сохранение файла 'используем встроенную константу Excel ThisWorkbook.SaveAs Filename:=sToSavePath, FileFormat:=xlOpenXMLWorkbookMacroEnabled 'используем числовую константу 'ThisWorkbook.SaveAs Filename:=sToSavePath, FileFormat:=52 End Sub
Любой метод: либо числовая константа, либо встроенная работают одинаково. Вопрос лишь в том, что лично для Вас будет удобнее и нагляднее.
Так же см.:
Работа с диалогами
Как запретить сообщения?
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Выбор файлов в VBA Excel. Стандартный диалог Application.GetOpenFilename. Стартовая папка диалога выбора файлов.
Открытие диалога выбора файлов
Открытие диалога для выбора любого файла и записи его полного имени в ячейку «A1»:
Private Sub CommandButton1_Click() Range(«A1») = Application.GetOpenFilename End Sub |
В процессе выполнения этого кода VBA Excel открывается диалог с заголовком по умолчанию «Открытие файла» и возможностью выбора любого файла. При нажатии на кнопку «Открытие» полное имя выбранного файла запишется в ячейку «A1». При нажатии на кнопку «Отмена» или кнопку закрытия формы в ячейку «A1» запишется строка «Ложь».
Открытие диалога с заголовком «Выбор файла»:
Private Sub CommandButton1_Click() Range(«A1») = Application.GetOpenFilename (, , «Выбор файла») End Sub |
Открытие диалога выбора файлов с указанием одного фильтра:
Private Sub CommandButton1_Click() Range(«A1») = Application.GetOpenFilename («Файлы Excel 97-2003,*.xls», , «Выбор файла») End Sub |
Фильтр в этом коде VBA Excel представляет из себя пару: наименование фильтра и строка из знака подстановки «*» с расширением отбираемых файлов, разделенных «,». В данном случае в открытом диалоге будут видны файлы с расширением «.xls». Таких пар может быть несколько, как в следующем примере.
Открытие диалога выбора файлов с указанием трех фильтров файлов:
Private Sub CommandButton1_Click() Range(«A1») = Application.GetOpenFilename _ («Файлы Excel 97-2003,*.xls,Текстовые файлы,*.txt,Рисунки,*.jpg», , «Выбор файла») End Sub |
Выбрать один из фильтров можно из раскрывающегося списка диалога выбора файлов «Тип файлов».
Для справки:
Application.GetOpenFilename («Фильтры», номер, «Заголовок диалога»)
Аргумент номер — это номер по порядку фильтра в списке, отображаемого по умолчанию. Если номер отсутствует или превышает количество фильтров, то по умолчанию отображается первый в списке.
Стартовая папка диалога выбора файлов
При открытии стандартного диалога выбора файлов «Application.GetOpenFilename» по умолчанию, как стартовая, выбирается папка «Мои документы» в Windows XP, «Документы» в Windows 8, но, при желании, можно задать, как стартовую, и любую другую папку.
Для этого можно воспользоваться операторами ChDrive (смена текущего диска) и ChDir (смена текущего каталога). По умолчанию текущим является диск «С» в Windows XP, поэтому, если ваша папка находится на этом диске, то ChDrive можно пропустить.
Пример 1
Проверяем, какая папка является стартовой по умолчанию. При вызове процедуры из первого примера диалог откроется именно на этой папке. Если выбрать файл, в ячейку «A1» запишется полный путь к нему, а при отмене выбора, запишется «Ложь».
Private Sub CommandButton1_Click() Range(«A1») = Application.GetOpenFilename End Sub |
Пример 2
В этом примере кода VBA стартовой назначается папка D:Новая папка
. Если пропустить оператор ChDrive "D"
, то по умолчанию стартовой все-равно останется папка «Мои документы».
Private Sub CommandButton1_Click() ‘Смена текущего диска: ChDrive «D» ‘Смена текущего каталога: ChDir «D:Новая папка» Range(«A1») = Application.GetOpenFilename End Sub |
Пример 3
Здесь стартовой назначается папка, в которой расположен исходный файл Excel с кодом.
Private Sub CommandButton1_Click() ‘Смена текущего диска: ChDrive Left(ThisWorkbook.Path, 1) ‘Смена текущего каталога: ChDir ThisWorkbook.Path Range(«A1») = Application.GetOpenFilename End Sub |
Имя диска может быть любым, в зависимости от имеющегося на вашем компьютере.
Смотрите, как с помощью VBA Excel можно открыть папку в проводнике Windows для просмотра.
Function GetFilePath(Optional ByVal Title As String = «Выберите файл для загрузки», _
Optional ByVal InitialPath As String = «D:ПланированиеГрафик пр блоки», _
Optional ByVal FilterDescription As String = «Книги Excel», _
Optional ByVal FilterExtention As String = «*.xlsx*») As String
‘ функция выводит диалоговое окно выбора файла с заголовком Title,
‘ начиная обзор диска с папки InitialPath
‘ возвращает полный путь к выбранному файлу, или пустую строку в случае отказа от выбора
‘ для фильтра можно указать описание и расширение выбираемых файлов
On Error Resume Next
With Application.FileDialog(msoFileDialogOpen)
.ButtonName = «Выбрать»: .Title = Title: .InitialFileName = InitialPath
.Filters.Clear: .Filters.Add FilterDescription, FilterExtention
If .Show <> -1 Then Exit Function
GetFilePath = .SelectedItems(1): PS = Application.PathSeparator
End With
End Function
Sub OpenFile_()
ИмяФайла = GetFilePath(, «D:ПланированиеГрафик пр блоки», , «*.*») ‘ запрашиваем имя файла
‘ ===================== другие варианты вызова функции =====================
‘ текстовые файлы, стартовая папка не указана
‘ ИмяФайла = GetFilePath(«Выберите текстовый файл», , «Текстовые файлы», «*.txt»)
‘ файлы любого типа из папки «C:Windows»
‘ ИмяФайла = GetFilePath(, «C:Windows», , «*»)
‘ ==========================================================================
If ИмяФайла = «» Then Exit Sub ‘ выход, если пользователь отказался от выбора файла
‘ MsgBox «Выбран файл: » & ИмяФайла, vbInformation
End Sub
Вот я сделал макрос чтобы выбирать файл, а как дальше продолжить макрос, чтобы в выбранном файле брались данные из нужны листов и из нужных ячеек, и вставлялись в другую книгу?
Импорт и экспорт текстовых файлов (в формате TXT или CSV)
Смотрите такжеstalker138013 перейдёт в него. изменится в соответствии операции импорта изСоздать… таблицуWinterCalgary сочетание клавиш CtrlCount of Medal области сводной таблицы — и нажмите кнопку общего доступа. см. в статье можно преобразовать послеЕсли файл имеет расширениеПримечание:: Добрый вечер. НаСуществует возможность вставить новый с макетом, но
базы данных, изв выделенной области. Поскольку у данныхTokyoCAN + T, чтобы. это не повлияетОткрытьУчебники этой серии Мастер импорта текста. импорта. Дополнительные сведения CSV, приложение Excel Мы стараемся как можно работе в прайс
элемент с помощью при этом базовые
-
другой книги Excel,Полей сводной таблицы есть заголовки, установитеJPNCA отформатировать данные как
-
В таблице на базовые данные.. Откроется окно ВыборИмпорт данных в ExcelВ операционной системе Microsoft см. в статьях
автоматически откроет его оперативнее обеспечивать вас вставляю фото. Размер контекстного меню. данные будут изменены а также посредством, чтобы открыть диалоговое
флажокJA1988 таблицу. Также можноMedals
Импорт текстового файла путем его открытия в Microsoft Excel
Рассмотрим в сводной таблице таблицы ниже таблиц 2013 и создание Windows нажмите кнопку Преобразование чисел из и отобразит данные актуальными справочными материалами фото очень маленький.Кликаем правой кнопкой мыши без возможности восстановления. копирования и вставки окноТаблица с заголовками1964Winter отформатировать данные как
-
снова выберите поле данные об олимпийских в базе данных. модели данныхПуск
-
текстового формата в в новой книге. на вашем языке. Но после того, по любому из
-
D. Базовые данные изменятся, данных в Excel.
-
Создания связив окнеSummerSt. Moritz таблицу на ленте, Medal и перетащите медалях, начиная с Таблицы в базеРасширение связей модели данных
-
и выберите пункт числовой и ПреобразованиеПримечание: Эта страница переведена
-
как я вставляю уже имеющихся в что приведет кЧтобы данные работали вместе,, как показано на
Создание таблицыSapporoSUI выбрав его в область призеров Олимпийских игр, данных похожи на с помощью Excel,Панель управления дат из текстового .При открытии в Excel автоматически, поэтому ее фотки в файл. книге листов. В созданию новых наборов потребовалось создать связь приведенном ниже снимке.JPNSZГЛАВНАЯ > форматировать какФИЛЬТРЫ упорядоченных по дисциплинам, листы или таблицы Power Pivot и. формата в формат файлов с расширением текст может содержать Его размер становится появившемся контекстном меню данных. между таблицами, которую
-
Импорт текстового файла путем подключения к нему
экрана.Присвойте таблице имя. НаJA1928
-
таблицу. типам медалей и
-
в Excel. Установите DAXОткройте диалоговое окно изменения даты. CSV для интерпретации неточности и грамматические очень большим.
-
выбираем пунктВопрос 4. Excel использует для
В области вкладках1972Winter. Так как данныеДавайте отфильтруем сводную таблицу странам или регионам. флажок Создание отчетов Power View региональных и языковыхЛист Excel можно преобразовать способа импорта каждого ошибки. Для насВставил 30 фото«Вставить…»
-
Что необходимо для согласования строк. ВыТаблицаРАБОТА С ТАБЛИЦАМИ >
-
WinterSt. Moritz с заголовками, выберите таким образом, чтобыВ
-
Разрешить выбор нескольких таблиц на основе карт параметров. в текстовый файл,
-
столбца данных используются важно, чтобы эта — размер файла. создания связи между
-
также узнали, чтовыберите пункт КОНСТРУКТОР > СвойстваNaganoSUIТаблица с заголовками
-
-
-
отображались только страныПолях сводной таблицыи выберите все
Объединение интернет-данных и настройкаВведите новый разделитель в используя команду меню
текущие параметры по статья была вам стал 6мб. НаОткрывается новое окно. В таблицами? наличие в таблицеDisciplinesнайдите полеJPNSZв окне или регионы, завоевавшие
Экспорт данных в текстовый файл путем его сохранения
разверните таблицы. Нажмите кнопку параметров отчета Power полеСохранить как
-
умолчанию. С помощью полезна. Просим вас другом компе сотрудница нём нам нужноA. Ни в одной
-
столбцов, согласующих данныеиз раскрывающегося списка.Имя таблицы
-
JA1948Создание таблицы более 90 медалей.
-
таблицеОК View по умолчаниюРазделитель элементов списка. мастера импорта текста
-
уделить пару секунд также вставляла фотки, будет выбрать, что из таблиц не в другой таблице,В областии введите слово1998Winter
-
-
, которая появляется, как Вот как это, щелкнув стрелку.Создание впечатляющих отчетов Power.
-
Выберите можно применять другие и сообщить, помогла 220шт — у именно мы хотим может быть столбца, необходимо для созданияСтолбец (чужой)HostsWinterBeijing показано ниже. сделать. рядом с ним.
-
Откроется окно импорта данных. View, часть 1Дважды нажмите кнопкуФайл варианты преобразования столбцов ли она вам, неё файл получился вставить. Выбираем элемент содержащего уникальные, не связей и поискавыберите пункт.SeoulCHNФорматирование данных вВ сводной таблице щелкните Найдите поле NOC_CountryRegionПримечание:Создание впечатляющих отчетов PowerОК >
в различные форматы с помощью кнопок 12мб.«Лист» повторяющиеся значения. связанных строк.
Изменение разделителя, используемого в текстовом файле
SportIDВыберите столбец Edition иKORCH виде таблицы есть стрелку раскрывающегося списка в Обратите внимание, флажок в View, часть 2.Сохранить как данных. Например, в внизу страницы. Для
Вот такие чудеса.. Жмем на кнопкуB. Таблица не должнаВы готовы перейти к
Изменение разделителя во всех текстовых CSV-файлах
-
. на вкладкеKS2008 г. множество преимуществ. В рядом с полем
-
развернутом таблице нижней части окна,В этом учебнике вы
-
Примечание:. файле с расширением удобства также приводим
-
Может кто подскажет,«OK» быть частью книги
следующему учебнику этогоВ областиГЛАВНАЯ1988Summer виде таблицы, былоМетки столбцови перетащите его можно
См. также
начнете работу с После изменения символа разделителя
Появится диалоговое окно CSV в столбце
ссылку на оригинал
что с моим.
Excel.
цикла. Вот ссылка:
support.office.com
Учебник: Импорт данных в Excel и создание модели данных
Связанная таблицазадайте для негоSummerBerlin легче идентифицировать можно. в областьДобавить эти данные в пустой книги Excel. элементов списка наСохранение документа дат может быть (на английском языке). файлом не так?После этого, новый листC. Столбцы не должныРасширение связей модели данныхвыберите пунктчисловойMexicoGER присвоить имя. Также
ВыберитеСТОЛБЦОВ модель данныхИмпорт данных из базы данном компьютере все. установлен формат М/Д/Г,Импортировать данные из текстовыхХотел прайс подгрузить, будет добавлен в быть преобразованы в с использованием Excel 2013,Sportsформат с 0MEXGM можно установить связиФильтры по значению. Центра управления СЕТЬЮ, которое показано на данных программы будут использоватьВ поле а в Excel файлов в Excel
как пример. Но список уже имеющихся таблицы. Power Pivot и. десятичных знаков.MX1936 между таблицами, позволяя, а затем —
означает национальный Олимпийских приведенном ниже снимкеИмпорт данных из электронной новый символ. ТаТип файла по умолчанию задан можно двумя способами: он слишком большой? элементов над строкойD. Ни один из DAXВ области
Сохраните книгу. Книга будет
-
1968Summer исследование и анализ
-
Больше… комитетов, являющееся подразделение экрана. Модели данных таблицы
-
же процедура позволяетвыберите формат текстового
-
формат Г/М/Д, или открыть файл вВторой вопрос удален
-
состояния. вышеперечисленных ответов не
-
ТЕСТСвязанный столбец (первичный ключ)
иметь следующий вид:SummerGarmisch-Partenkirchen
Разделы учебника
в сводных таблицах,Введите
для страны или создается автоматически при
Импорт данных с помощью изменить символ на
файла для листа. необходимо преобразовать в
приложении Excel или
[МОДЕРАТОР]Ещё одна возможность создать является правильным.Хотите проверить, насколько хорошо
выберите пунктТеперь, когда у насAmsterdamGER Power Pivot и90 региона. импорте или работать копирования и вставки принятый по умолчанию.Например, выберите текст столбец чисел, импортировать его какvlad000 новый лист предполагает
Импорт данных из базы данных
Ответы на вопросы теста вы усвоили пройденныйSportID есть книги ExcelNEDGM Power View.в последнем полеЗатем перетащите виды спорта
с несколько таблицСоздание связи между импортированнымиОбщие сведения о формулахТекстовые файлы (с разделителями содержащих начальные нули,
-
диапазон внешних данных.: stalker138013,можно попробовать прогонять использование инструментов, которыеПравильный ответ: C материал? Приступим. Этот. с таблицами, можноNL1936Назовите таблицу. В (справа). Нажмите кнопку из таблицы одновременно. Модели данных
данными в Excel
табуляции) так, чтобы сохранить
Чтобы экспортировать данные двоичные данные через
размещены на ленте.Правильный ответ: D -
тест посвящен функциям,Нажмите кнопку
-
создать отношения между1928WinterРАБОТА с ТАБЛИЦАМИ >ОКDisciplines интегрируется таблиц, включениеКонтрольная точка и тестРекомендации, позволяющие избежать появленияили их. Чтобы принудительно из Excel в РР и вНаходясь во вкладкеПравильный ответ: Б возможностям и требованиям,ОК
-
ними. Создание связейSummerBarcelona КОНСТРУКТОР > Свойства.в область глубокого анализа сВ конце учебника есть неработающих формулCSV (разделители — запятые) запустить мастер импорта текстовый файл, используйте сводной талбличке PowerView«Главная»Правильный ответ: D о которых вы
-
.
между таблицами позволяетOsloESP, найдите полеСводная таблица будет иметьСТРОКИ помощью сводных таблиц, тест, с помощьюПоиск ошибок в формулах. текста, можно перед команду отображать. Картинкии будуткликаем по пиктограммеПримечания: узнали в этомИзменения сводной таблицы, чтобы объединить данные двухNORSPИмя таблицы следующий вид:. Power Pivot и которого можно проверитьСочетания клавиш и горячиеПримечание: открытием файла изменитьСохранить как иметь исходный размер в виде перевернутого Ниже перечислены источники данных учебнике. Внизу страницы отразить новый уровень.
таблиц.NO1992и введитеНе затрачивая особых усилий,Давайте отфильтруем дисциплины, чтобы Power View. При свои знания. клавиши в Excel Различные форматы поддерживают разные
-
его расширение наи измените тип и цвет. Но треугольника около кнопки
и изображений в вы найдете ответы Но Сводная таблицаМы уже можем начать1952
SummerSports
вы создали сводную отображались только пять импорте таблиц изВ этой серии учебниковФункции Excel (по алфавиту) наборы функциональных возможностей. CSV или TXT файла в раскрывающемся надо файлик и«Вставить» этом цикле учебников. на вопросы. Удачи! выглядит неправильно, пока использовать поля вWinterHelsinki. Книга будет иметь таблицу, которая содержит видов спорта: стрельба базы данных, существующие использует данные, описывающиеФункции Excel (по категориям)
Дополнительные сведения о или импортировать текстовый меню. картинок чтобы проверить, которая размещена наНабор данных об ОлимпийскихВопрос 1. из-за порядок полей сводной таблице изLillehammerFIN вид ниже. поля из трех из лука (Archery),
базы данных связи Олимпийских Медалях, размещенияПримечание: функциональных возможностях, поддерживаемых файл путем подключенияЧаще всего используются дваstalker138013
-
ленте в блоке играх © GuardianПочему так важно в область импортированных таблиц. ЕслиNORFIСохраните книгу. разных таблиц. Эта прыжки в воду между этими таблицами странах и различныеМы стараемся как различными форматами текстовых к нему. формата текстовых файлов:: А как Вам
-
инструментов News & Media преобразовывать импортируемые данныеСТРОК не удается определить,NO
-
1952Теперь, когда данные из задача оказалась настолько (Diving), фехтование (Fencing), используется для создания Олимпийских спортивные. Рекомендуется можно оперативнее обеспечивать файлов, см. вВ имеющийся лист можнотекстовые файлы с разделителями скинуть файл 6мб?«Ячейки» Ltd. в таблицы?. Дисциплины является Подкатегория как объединить поля
-
1994Summer книги Excel импортированы, простой благодаря заранее фигурное катание (Figure модели данных в изучить каждый учебник вас актуальными справочными разделе Поддерживаемые Excel импортировать данные из (TXT), в которых Может у меня. В появившемся менюИзображения флагов из справочникаA. Их не нужно заданного видов спорта, в сводную таблицу,WinterParis давайте сделаем то созданным связям между Skating) и конькобежный Excel. Прозрачно модели по порядку. Кроме материалами на вашем форматы файлов.
-
текстового файла как для разделения полей в настройках Екселя, выбираем пункт CIA Factbook (cia.gov). преобразовывать в таблицы, но так как нужно создать связьStockholmFRA же самое с таблицами. Поскольку связи спорт (Speed Skating). данных в Excel, того учебники с языке. Эта страницаПерейдите в папку, в диапазон внешних данных.
-
-
текста обычно используется что-то не так«Вставить лист»Данные о населении из потому что все мы упорядочиваются дисциплины с существующей модельюSWEFR данными из таблицы между таблицами существовали Это можно сделать но вы можете
-
помощью Excel 2013 переведена автоматически, поэтому которой нужно сохранитьЩелкните ячейку, в которую знак табуляции (код выставлено? Я пришлю.
-
документов Всемирного банка импортированные данные преобразуются выше видов спорта данных. На следующихSW1900 на веб-странице или
-
в исходной базе в области просматривать и изменять с поддержкой Power ее текст может
-
новый текстовый файл, требуется поместить данные знака ASCII 009); пустой файл. Посмотрите
-
После этих действий вставка (worldbank.org). в таблицы автоматически. в области этапах вы узнаете,1912
-
Summer из любого другого
данных и выПоля сводной таблицы его непосредственно с Pivot. Дополнительные сведения содержать неточности и и нажмите кнопку из текстового файла.текстовые файлы с разделением пожалуйста. элемента будет выполнена.Авторы эмблем олимпийских видовB. Если преобразовать импортированныеСТРОК как создать связьSummerParis источника, дающего возможность
импортировали все таблицыили в фильтре помощью надстройки Power об Excel 2013, грамматические ошибки. ДляСохранитьНа вкладке значений запятыми (CSV),JayBhagavanТакже для выполнения данной спорта Thadius856 и данные в таблицы,, он не организована
Импорт данных из таблицы
между данными, импортированнымиSt LouisFRA копирования и вставки сразу, приложение ExcelМетки строк Pivot. Модель данных щелкните здесь. Инструкции нас важно, чтобы.Данные
в которых в: Выложить на файлообменник. задачи можно применить, Parutakupiu.
-
они не будут должным образом. На из разных источников.USA
-
FR в Excel. На смогло воссоздать этив самой сводной рассматривается более подробно по включению Power
-
эта статья былаОткроется диалоговое окно св группе качестве разделителя полейxseed так называемые, горячиеШироко известно, что в включены в модель следующем экране показанаНа
-
US1924 следующих этапах мы связи в модели таблице.
-
далее в этом Pivot, щелкните здесь. вам полезна. Просим напоминанием о том,Получение внешних данных текста обычно используется: Я давно заметил клавиши. Просто набираем одной книге (файле) данных. Они доступны нежелательным порядком.листе Лист11904Summer добавим из таблицы данных.Щелкните в любом месте
руководстве.Начнем работу с учебником вас уделить пару что в текстовомнажмите кнопку запятая (,). в excel одну на клавиатуре сочетание Excel имеются по в сводных таблицах,Переход в областьв верхней части -
SummerChamonix города, принимающие ОлимпийскиеНо что делать, если сводной таблицы, чтобыВыберите параметр с пустой книги. секунд и сообщить, файле будет сохранен
-
Из текстового или CSV-файла
Импорт данных с помощью копирования и вставки
Можно изменить знак разделителя, вещь, если вставляешь клавиш умолчанию три листа, Power Pivot иСТРОКПолей сводной таблицыLos AngelesFRA игры. данные происходят из убедиться, что своднаяОтчет сводной таблицы В этом разделе
-
помогла ли она только текущий лист.. используемый как в
-
изображение через CTRL-VShift+F11 между которыми можно
Power View только |
видов спорта выше |
, нажмите кнопку |
USA |
FR |
Вставьте новый лист Excel |
разных источников или |
таблица Excel выбрана. |
, предназначенный для импорта |
вы узнаете, как |
вам, с помощью |
Если нужно сохранить |
Найдите файл, который нужно |
TXT-, так и |
скопированное из другого |
. Новый лист не |
переключатся. Тем самым |
в том случае, |
Discipline. Это гораздо |
все |
US |
1924 |
и назовите его |
импортируются не одновременно? |
В списке |
таблиц в Excel |
подключиться к внешнему |
кнопок внизу страницы. |
именно текущий лист, |
импортировать, и дважды |
CSV-файлах. Это может |
редактора, то оно |
просто будет добавлен, |
возникает возможность создавать |
если исключены из |
лучше и отображение |
, чтобы просмотреть полный |
1932 |
Winter |
Hosts |
Обычно можно создать |
Поля сводной таблицы |
и подготовки сводной |
источнику данных и |
Для удобства также |
нажмите кнопку |
щелкните его. |
потребоваться для обеспечения |
вставляется как несжатое |
а ещё и |
в одном файле |
модели данных. |
в сводной таблице |
список доступных таблиц, |
Summer |
Grenoble |
. |
связи с новыми |
, где развернута таблица |
таблицы для анализа |
импортировать их в |
приводим ссылку на |
ОК |
Следуйте инструкциям мастера импорта |
успешного выполнения операций |
(а-ля *.bmp). Если |
станет активным. То |
несколько связанных документов. |
C. Если преобразовать импортированные |
как вы хотите |
как показано на |
Lake Placid |
FRA |
Выделите и скопируйте приведенную |
данными на основе |
Disciplines |
импортированных таблиц и |
Excel для дальнейшего |
оригинал (на английском |
. Другие листы можно |
текста. Дополнительные сведения |
импорта и экспорта. |
же это делать |
есть, сразу после |
Но, что делать, |
данные в таблицы, |
просмотреть, как показано |
приведенном ниже снимке |
USA |
FR |
ниже таблицу вместе |
совпадающих столбцов. На |
, наведите указатель на |
нажмите |
анализа. |
языке) . |
сохранить в отдельных |
об использовании мастера |
Примечание: |
через Специальную вставку |
добавления пользователь автоматически |
если предустановленного количества |
их можно включить |
на приведенном ниже |
экрана. |
US |
1968 |
с заголовками. |
следующем этапе вы |
поле Discipline, и |
кнопку ОК |
Сначала загрузим данные из |
Аннотация. |
текстовых файлах, повторив |
импорта текста см. |
Можно импортировать и экспортировать |
-> рисунок, то |
перейдет на него. |
таких дополнительных вкладок |
в модель данных, |
снимке экрана. |
Прокрутите список, чтобы увидеть |
1932 |
Winter |
City |
импортируете дополнительные таблицы |
в его правой |
. |
Интернета. Эти данные |
Это первый учебник |
эту процедуру для |
в его справке, |
до 1 048 |
изображение вставляется в |
Урок: |
не хватает? Давайте |
и они будут |
При этом Excel создает |
новые таблицы, которую |
Winter |
Albertville |
NOC_CountryRegion |
и узнаете об |
части появится стрелка |
После завершения импорта данных |
об олимпийских медалях |
из серии, который |
каждого из них. |
которую можно вызвать |
576 строк и |
сжатом формате (без |
Горячие клавиши в Экселе |
разберемся, как добавить |
доступны в сводных |
модель данных, которую |
вы только что |
Squaw Valley |
FRA |
Alpha-2 Code |
этапах создания новых |
раскрывающегося списка. Щелкните |
создается Сводная таблица |
являются базой данных |
поможет ознакомиться с |
Откроется второе диалоговое окно |
с помощью кнопки |
16 384 столбцов. |
потерь), объем файла |
Как видим, существует четыре |
новый элемент в |
таблицах, Power Pivot |
можно использовать глобально |
добавили. |
USA |
FR |
Edition |
связей. |
эту стрелку, нажмите |
с использованием импортированных |
Microsoft Access. |
программой Excel и |
с напоминанием о |
Справка |
Текстовый файл, созданный в |
при этом уменьшается |
совершенно разных варианта |
Экселе. |
и Power View. |
во всей книге |
Разверните |
US |
1992 |
Season |
Теперь давайте импортируем данные |
кнопку |
таблиц. |
Перейдите по следующим ссылкам, |
ее возможностями объединения |
том, что сохраняемый |
на любой странице |
другой программе, можно |
значительно. |
добавления нового листа |
Скачать последнюю версию |
D. Импортированные данные нельзя |
в любой сводной |
виды спорта |
1960 |
Winter |
Melbourne / Stockholm |
из другого источника, |
(Выбрать все) |
Теперь, когда данные импортированы |
чтобы загрузить файлы, |
и анализа данных, |
лист может содержать |
мастера. Окончив работу |
открыть как книгу |
Раньше для борьбы |
в книгу Эксель. |
Excel |
преобразовать в таблицы. |
таблице и диаграмме, |
и выберите |
Winter |
London |
AUS |
из существующей книги. |
, чтобы снять отметку |
в Excel и |
которые мы используем |
а также научиться |
возможности, которые не |
с мастером, нажмите |
Microsoft Excel с |
с подобными проявлениями, |
Каждый пользователь выбирает |
Как переключатся между листами, |
Вопрос 2. |
а также в |
-
видов спортаMoscowGBRAS Затем укажем связи
-
со всех выбранных автоматически создана модель при этом цикле легко использовать их. поддерживаются текстовыми форматами кнопку помощью команды если специальная вставка тот путь, который знает большинство пользователей.Какие из указанных Power Pivot и, чтобы добавитьURSUK1956
-
между существующими и параметров, а затем данных, можно приступить учебников. Загрузка каждого С помощью этой файлов. Если вГотовоОткрыть не срабатывала (особенно
-
ему кажется более Для этого нужно ниже источников данных отчете Power View. его в своднойRU1908
-
Summer новыми данными. Связи
прокрутите вниз и к их просмотру. из четырех файлов серии учебников вы новом текстовом файле, чтобы завершить операцию. При открытии текстового в ворде), я
Создание связи между импортированными данными
удобным, так как кликнуть по одному можно импортировать в Основой модели данных таблице. Обратите внимание1980SummerSydney позволяют анализировать наборы выберите пункты Archery,Просмотр данных в сводной в папке, доступной научитесь создавать с нужно сохранить только
-
импорта. файла в Microsoft использовал редактор Microsoft функциональной разницы между из их наименований, Excel и включить являются связи между на то, чтоSummerLondonAUS
-
данных в Excel Diving, Fencing, Figure таблице удобный доступ, например
-
нуля и совершенствовать данные листа, нажмитеВ диалоговом окне Excel его формат Photo Editor (), вариантами нет. Конечно, которые расположены над в модель данных? таблицами, определяющие пути Excel предложит создатьLos AngelesGBR
AS и создавать интересные Skating и SpeedПросматривать импортированные данные удобнеезагрузки рабочие книги Excel, кнопкуИмпорт данных не изменяется — это просто вставляя и быстрее и удобнее строкой состояния вA. Базы данных Access навигации и вычисления связи, как показаноUSAUK2000 и эффектные визуализации Skating. Нажмите кнопку всего с помощьюили строить модели данныхДавыполните одно из можно видеть в затем копируя из всего использовать для
-
нижней левой части и многие другие данных. на приведенном нижеUS1908Summer импортированных данных.ОК сводной таблицы. В
-
Мои документы и создавать удивительные. Если имеются сомнения указанных ниже действий. строке заголовка Microsoft
-
него изображение в этих целей горячие экрана. базы данных.В следующем учебнике
-
снимке экрана.1984 г.WinterInnsbruckНачнем с создания пустого
-
. сводной таблице можноили для создания новой интерактивные отчеты с и необходимо получить
-
При необходимости нажмите кнопку Excel, где имя буфер для последующей
клавиши, но неА вот как добавлятьB. Существующие файлы Excel.Расширение связей модели данныхЭто уведомление происходит потому,SummerLondonAUT листа, а затемЛибо щелкните в разделе перетаскивать поля (похожие папки: использованием надстройки Power дополнительные сведения оСвойства отображается с расширением вставки в excel/word. каждый человек может
-
листы знает неC. Все, что можно с использованием Excel что вы использовалиAtlantaGBRAT импортируем данные из сводной таблицы на столбцы в
> Базы данных View. В этих том, какие возможности, чтобы задать параметры текстового файла (например, Сейчас он имеет удержать комбинацию в каждый. Некоторые пользователи скопировать и вставить 2013, полей из таблицы,USAUK1964
книги Excel.Метки строк Excel) из таблиц OlympicMedals.accdb Access учебниках приводится описание Excel не поддерживаются обновления, форматирования и .TXT или .CSV). другое имя и голове, а поэтому даже не в в Excel, аPower Pivot которая не являетсяUS1948WinterВставьте новый лист Excelстрелку раскрывающегося списка (например, таблиц, импортированных> Книгу Excel
Контрольная точка и тест
возможностей средств бизнес-аналитики
форматами текстовых файлов, макета импортируемых данных.Последовательно выберите пункты я не знаю большинством пользователей применяются курсе, что существует также отформатировать каки DAX частью базовой модели1996SummerInnsbruck и назовите его рядом с полем
из базы данных файл OlympicSports.xlsx Майкрософт в Excel, нажмите кнопкуВ группефайл как он работает. интуитивно более понятные подобная возможность. Давайте таблицу, включая таблицывы закрепите знания, данных. Чтобы добавить
SummerMunichAUT
SportsМетки строк Access) в разные> Книгу Population.xlsx
сводных таблиц, Power
СправкаКуда следует поместить данные?>Если объект для способы добавления. разберемся, как это данных на веб-сайтах, полученные в данном таблицу в модельSalt Lake City
GERAT., нажмите кнопку
области Excel Pivot и Power.выполните одно из
Открыть вставки копируется изАвтор: Максим Тютюшев сделать различными способами. документы и любые уроке, и узнаете данных можно создатьUSADE1976Перейдите к папке, в
(Выбрать все), настраивая представление данных.> Книгу DiscImage_table.xlsx View.Дополнительные сведения о сохранении следующих действий:. векторного редактора (например
объект, который вставляешь вНаиболее часто применяемый вариант
иные данные, которые о расширении модели связь с таблицей,US1972Winter
которой содержатся загруженные, чтобы снять отметку Сводная таблица содержит
Excel
Примечание: файлов в другихЧтобы поместить данные вВ диалоговом окне adobe Illustrator), то свободном плаванье в добавления – это можно вставить в данных с использованием которая уже находится
2002
SummerAntwerp файлы образцов данных, со всех выбранных четыре области:Откройте пустую книгу в
В этой статье описаны форматах см. в выбранное расположение, выберитеОткрыть вставку лучше делать
документе. использование кнопки, которая Excel. мощной визуальной надстройки в модели данных.
WinterAthensBEL и откройте файл параметров, а затемФИЛЬТРЫ
Excel 2013. моделей данных в статье Сохранение книги вариант
выберите пункт как Метафайл Windows,Игорь токарев называется
D. Все вышеперечисленное. Excel, которая называется Чтобы создать связьSarajevoGRC
BEOlympicSports.xlsx прокрутите вниз и
,Нажмите кнопку Excel 2013. Однако
в другом форматеНа существующий листТекстовые файлы
так изображение займет
-
: объекты вставляются поверх
-
«Вставить лист»
-
Вопрос 3.
-
Power Pivot. Также
одной из таблицYUGGR1920
-
. выберите пункты Archery,СТОЛБЦЫданные > Получение внешних
-
же моделированию данных файла.
-
.. еще меньший размер,
-
ячеек, а не. Это связанно сЧто произойдет в
support.office.com
4 способа добавления нового листа в Microsoft Excel
вы научитесь вычислять имеют столбец уникальным,YU2004SummerВыберите и скопируйте данные Diving, Fencing, Figure, данных > из и возможности PowerЕсли для импорта текстовогоЧтобы поместить данные вНайдите нужный файл и потому что объект внутри какой либо тем, что данный
сводной таблице, если столбцы в таблице
Способы добавления
без повторяющиеся значения.1984 г.SummerAntwerp на листе Skating и SpeedСТРОКИ Access Pivot, представленные в
файла используется мастер верхний левый угол дважды щелкните его. будет импортирован как ячейки. если к вариант наиболее интуитивно изменить порядок полей и использовать вычисляемый
Способ 1: использования кнопки
Образец данных вWinterCortina d’AmpezzoBELSheet1 Skating. Нажмите кнопкуи. Лента изменяется динамически Excel 2013 также импорта текста, то нового листа, выберитеЕсли это текстовый файл векторный, по крайней прмиер применить фильтр
- понятный из всех в четырех областях столбец, чтобы в
- таблицеВ Excel поместите курсорITABE. При выборе ячейки
Способ 2: контекстное меню
ОКЗНАЧЕНИЯ на основе ширины
- применять для Excel на втором этапе вариант (с расширением ТХТ), мере в word к таблице с имеющихся. Расположена кнопка полей сводной таблицы?
- модель данных можноDisciplines в ячейку А1IT1920 с данными, например,.. книги, поэтому может
2016. работы мастера разделительНовый лист запустится мастер импорта так было. Правда
Способ 3: инструмент на ленте
картинками то никакая добавления над строкойA. Ничего. После размещения было добавить несвязанную
импортированы из базы на листе1956Winter ячейки А1, можноВ разделеВозможно, придется поэкспериментировать, чтобы выглядеть немного отличаютсяВы узнаете, как импортировать текста можно изменить. текста. Окончив работу при большом увеличении картинка не свернется
состояния слева от полей в области
Способ 4: горячие клавиши
таблицу. данных содержит полеHostsWinterMontreal нажать клавиши Ctrl + A,Поля сводной таблицы определить, в какие от следующих экранах и просматривать данные с символа табуляцииНажмите кнопку с мастером, нажмите видно небольшие отклонения
она переместится каскадом перечня уже имеющихся
полей сводной таблицыПовторение изученного материала с кодами видыи вставьте данные.RomeCAN чтобы выбрать всеперетащите поле Medal области следует перетащить команд на ленте. в Excel, строить на другой символ.ОК кнопку в векторных кривых,Зибин в документе элементов. их порядок изменитьТеперь у вас есть спорта, под названием
Отформатируйте данные в виде
lumpics.ru
Как в экселе вставить файл в виде значка, чтобы он был именно внутри определенной ячейки? В ворде делал, а тут объект,…
ITACA смежные данные. Закройте
из таблицы поле. Можно перетаскивать Первый экран показана и совершенствовать модели На данном этапе.Готово возможно это связано: что за файл?Для добавления листа просто
нельзя. книга Excel, которая
пункт SportID. Те таблицы. Как описано
IT
1976 книгу OlympicSports.xlsx.
Medals
Как правильно вставлять рисунок в эксель
из таблиц любое лента при самых данных с использованием также можно изменитьПриложение Excel сохранит внешний, чтобы завершить операцию как-то с разрешениемна вкладке Вставка кликаем по указаннойB. Формат сводной таблицы
содержит сводную таблицу же коды виды выше, для форматирования1960SummerНа листев область количество полей, пока
книги, на втором
Power Pivot, а способ обработки последовательных диапазон данных в
импорта. редактируемого иллюстратором pdf см. Вставить объект…
выше кнопке. изменится в соответствии
с доступом к спорта присутствуют как данных в видеSummerLake PlacidSportsЗНАЧЕНИЯ представление данных в рисунке показано книги, также создавать с
разделителей (например, идущих выбранную позицию.Статья: Мастер импорта текста документа (максимум 2400илиНаименование нового листа тут с макетом, но данным в нескольких поле в Excel
таблицы нажмите клавишиTurin
CANпоместите курсор в. Поскольку значения должны сводной таблице не который был изменен помощью надстройки Power подряд кавычек).Если Microsoft Excel не Дополнительные сведения о dpi), я такКартинка в примечании же отображается на это не повлияет таблицах (некоторые из данные, которые мы Ctrl + T или выберитеITA
CA ячейку А1 и быть числовыми, Excel примет нужный вид. на занимают часть View интерактивные отчетыДополнительные сведения о разделителях преобразует столбец в разделители и дополнительные и не смог к ячейке - экране над строкой на базовые данные. них были импортированы импортированы. Создание отношения. пункт меню
IT1980 вставьте данные. автоматически изменит поле Не бойтесь перетаскивать экрана. с возможностью публикации, и дополнительных параметрах необходимый формат, данные параметры. побороть этот момент.http://planetaexcel.ru/techniques/9/128/ состояния, а пользовательC. Формат сводной таблицы отдельно). Вы освоилиНажмите кнопкуГЛАВНАЯ > Форматировать как2006 г.WinterДанные по-прежнему выделена нажмите Medal на поля в любыеВыберите загруженный файл OlympicMedals.accdb
planetaexcel.ru
защиты и предоставления
I’ve been spending the last few hours trying to figure out how to save a file onto the computer using VBA. The code template below that I found on another forum seems promising, except when I go to the desktop to access it, the .csv file has what looks like the page’s source code instead of the actual file I want. This may be because when I go to the URL, it doesn’t automatically download the file; rather, I am asked to save the file to a certain location (since I don’t know the path name of the uploaded file on the site).
Is there any way to alter this code to accommodate this, or will I have to use a different code entirely?
Sub Test()
Dim FileNum As Long
Dim FileData() As Byte
Dim MyFile As String
Dim WHTTP As Object
On Error Resume Next
Set WHTTP = CreateObject("WinHTTP.WinHTTPrequest.5")
If Err.Number <> 0 Then
Set WHTTP = CreateObject("WinHTTP.WinHTTPrequest.5.1")
End If
On Error GoTo 0
MyFile = "MY_URL_HERE"
WHTTP.Open "GET", MyFile, False
WHTTP.send
FileData = WHTTP.responseBody
Set WHTTP = Nothing
If Dir("C:UsersBLAHBLAHDesktop", vbDirectory) = Empty Then MkDir "C:UsersBLAHBLAHDesktop"
FileNum = FreeFile
Open "C:UsersBLAHBLAHDesktopmemberdatabase.csv" For Binary Access Write As #FileNum
Put #FileNum, 1, FileData
Close #FileNum
End Sub
Cross posts:
http://www.ozgrid.com/forum/showthread.php?t=178884
http://www.excelforum.com/excel-programming-vba-macros/925352-vba-go-to-website-and-download-file-from-save-prompt.html
shA.t
16.4k5 gold badges53 silver badges111 bronze badges
asked May 23, 2013 at 1:35
I found over the years more ways how to save/download data
using vba:
- The firs option witch I prefer and would recommend is to use the
URLDownloadToFile function
of theuser32 library
using the following solution - The second one which was also mentioned be yourself. The point here is to use the
Microsoft WinHTTP Services (Interop.WinHttp) COM library
. In order to achieve this you can also add the Interop.WinHttp reference to your project link. After that you are able to use simpler notation like here link - The third option I aware is to ask the browser to save it for us and then using the
Save_Over_Existing_Click_Yes
function was mentioned by Santosh. In this case we open an Internet Explorer using the COM interface and navigate to the proper site. So we have to add theMicrosoft Internet Controls
(Interop.SHDocVw
) and theMicrosoft HTML Object Library
(Microsoft.mshtml
) references to our project in order to gain intellisense feature of the editor.
I don’t like this download method because this is a work around by hacking. BUT if your IE session was already established authenticated etc. this gonna work nicely. The save function of the Internet Controls was dropped because of security concern. See for example: link
Newer the less you have to have the correct url to download what you want. If you pick the wrong one you will download something else
- So please try to make sure the the url you use is correct by enter it in a browser. If it opens the right .csv file than your source could work too.
- Also please try to send some more information: for example the url to the .csv file
answered Jan 10, 2016 at 22:16
minus oneminus one
6227 silver badges27 bronze badges
Try below code :
Copied from here (Not tested)
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Private Sub Save_Over_Existing_Click_Yes()
Dim hWnd As Long
Dim timeout As Date
Debug.Print "Save_Over_Existing_Click_Yes"
'Find the Download complete window, waiting a maximum of 30 seconds for it to appear. Timeout value is dependent on the
'size of the download, so make it longer for bigger files
timeout = Now + TimeValue("00:00:30")
Do
hWnd = FindWindow(vbNullString, "Save As")
DoEvents
Sleep 200
Loop Until hWnd Or Now > timeout
Debug.Print " Save As window "; Hex(hWnd)
If hWnd Then
'Find the child Close button
hWnd = FindWindowEx(hWnd, 0, "Button", "&Yes")
Debug.Print " Yes button "; Hex(hWnd)
End If
If hWnd Then
'Click the Close button
SetForegroundWindow (hWnd)
Sleep 600 'this sleep is required and 600 miiliseconds seems to be the minimum that works
SendMessage hWnd, BM_CLICK, 0, 0
End If
End Sub
answered May 23, 2013 at 2:57
SantoshSantosh
12.1k4 gold badges41 silver badges72 bronze badges
5
Загрузка файлов по URL ссылкам
Загрузка файлов по URL ссылкам – инструмент для импорта файлов с веб ресурсов по URL ссылкам, в выбранную папку на компьютере.
С возможностью их переименования при импорте.
Инструкция по использованию:
- Диапазон ссылок на файлы – ссылки на файлы. Должна содержать протокол (например,
http://
). - Выбор папки для файлов – путь к папки для сохранения файлов.
Пример использования инструмента загрузки файлов по URL ссылкам
URL файла – кнопка выбора диапазона ячеек с ссылками URL, на файлы для скачивания. Если в соседнем столбце с ссылками указать новые названия файлов, то при загрузке они будут переименованы. Если в соседнем столбце пусто, то название файлов останется без изменения.
Выбор папки для сохранения – кнопка выбора папки, в которую будут загружены файлы.
GBS.Market позволяет выполнить загрузку номенклатуры (справочник товаров) из документа формата Excel в базу данных программы (в каталог товаров).
Например, это может быть полезным для:
- первичного заполнения номенклатуры товаров из прайса поставщика
- переноса данных в GBS.Market из других учетных систем
Важно Если в документе не указаны категории товаров и товары планируется загружать в существующую категорию, то перед загрузкой убедитесь, что у вас созданы необходимые категории.
Поддерживается загрузка из файлов формата:
- .xls Книга Excel 97-2000
- .xlsx Книга Excel 2007-2010
Наличие Excel на компьютере необязательно. Файлы для просмотра могут быть открыты в аналогичных программах, например, OpenOffice, LibreOffice.
Полезно Данные могут быть загружены так же из файлов формата CSV, для этого их необходимо открыть в Excel и сохранить в формате «Книга Excel».
Пример документа для загрузки
Возьмем для примера документ формата Excel выгруженный из другой учетной системы.
Определение номеров столбцов
Для того чтобы начать загрузку данных из документа, необходимо определить номера для столбцов, из которых мы будем загружать информацию.
- Инструкция как определить номера столбцов в Excel
В нашем примере значения получаются следующие:
- Штрихкод: 1
- Категория: 2
- Наименование: 3
Загрузка товаров из Excel
Информация Загрузка товаров из Excel регулируется правом доступа «Создание товаров» и «Просмотр каталога товаров».
Видео-урок по настройке прав доступа.
Загрузить товары из Excel в GBS.Market можно в каталоге товаров. На главной форме откройте Товары – Каталог товаров.
В каталоге товаров в меню нажмите Файл.
И выберите пункт “Загрузить из Excel”
Форма загрузки товаров из Excel
Загрузка товаров осуществляется через форму загрузки, показанную на скриншоте ниже.
Путь к файлу
В форме загрузки нажмите кнопку обзора файлов, чтобы выбрать документ, из которого будет происходить загрузка товаров.
После нажатия на кнопку откроется окно проводника, в котором необходимо выбрать файл Excel.
Выберите файл и нажмите “Открыть”. После этого в программе отобразиться путь к выбраному файлу.
Шаблон настроек
Шаблоны настроек позволяют использовать ранее указанные параметры, без необходимости каждый раз заполнять настройки для однотипных документов.
Заполните номера столбцов и укажите другие опции, а затем сохраните шаблон. При следующей загрузке вы сможете повторно использовать шаблон, чтобы не заполнять такие же значения.
Лист с данными
Документ Excel может содержать один или несколько листов с данными. Выглядит это так:
В форме загрузки необходимо выбрать тот лист, с которого будет происходить загрузка. Если в документе один лист, то он будет выбран автоматически.
Первая строка
В некоторых случах полезные данные могут начинаться не с первой строки. Чтобы минимизировать количество лишних данных, укажите строку, с которой начинается необходимая информация.
В нашем примере это строка №2, т.к. в самой первой строке расположены названия столбцов.
Наименование
Укажите номер столбца из которого для товаров будет заполнено наименование. В документе из примера это столбец №3
Строки, в которых для товара нет наименования, будут пропущены. Так же НЕ будут загружены товары, название для которых меньше 3 символов.
Штрихкод
Для поля “штрихкод” укажите номер столбца. В нашем примере это столбец №1 в документе Excel
Параметр “если пусто, то” подразумевает действия программы в том случае, если значение в ячейке будет пустым. Доступны три варианта:
- Оставить пустым – штрихкод товара не будет указан
- Генерировать штрихкод автоматически – программа сгенерирует ШК автоматически. Префикс для таких ШК будет установлен указанный в настройках
- Пропустить строку – данные из строки не будут использоваться
Категория товара
Для присвоения категории товару можно выбрать несколько вариантов действия.
Если в документе категория не указана – можно задать одну категорию на все загружаемые товары.
В документе, который мы взяли в качестве пример, категории для товаров указаны. В этом случае можно использовать загрузку категории из документа. Столбец с категорией в нашем случае – №2.
Если такой категории в базе нет, то
Здесь необходимо указать логику поведения программы в том случае, если категории с названием из документа не удалось найти в базе данных.
- Добавить категорию в базу – будет создана категория с названием из ячейки.
- Присвоить категорию – будет присвоена выбранная категория
В нашем случае мы будем создавать категорию, т.к. в базе данных еще нет категорий.
Если пусто, то
В случае, если в ячейке категории пусто, то программа может выполнить следующие действия:
- Пропустить строку – данные из такой строки будут пропущены
- Присвоить категорию – будет присвоена выбранная категория
Описание
Кроме основных параметров товара из Excel могут быть загружены в т.ч. такие данные:
- описание товара
- дополнительные штрихкоды
- значения дополнительных полей
Укажите номера столбцов для таких данных, если необходимо.
Если включить опцию “пропускать, если пусто”, то строка с пустым значением поля будет пропущена.
- Видео-урок: как добавить доп. поля для товаров и контактов
Загрузить
Проверьте, что все данные были введены верно и нажмите “Загрузить”, чтобы программа начала обработку документа и загрузку данных в каталог товаров.
После завершения загрузки программа отобразит уведомление с количеством загруженных позиций.
Проверка результата
Если все сделано верно, то в каталоге товаров появятся те записи, которые были в выбранном документе Excel