Vba как открыть файл
Что это и как его открыть?
Если ваш файл VBA связан с аппаратным обеспечением на вашем компьютере, чтобы открыть файл вам может потребоваться обновить драйверы устройств, связанных с этим оборудованием.
Эта проблема обычно связана с типами мультимедийных файлов, которые зависят от успешного открытия аппаратного обеспечения внутри компьютера, например, звуковой карты или видеокарты. Например, если вы пытаетесь открыть аудиофайл, но не можете его открыть, вам может потребоваться обновить драйверы звуковой карты.
Совет: Если при попытке открыть файл VBA вы получаете сообщение об ошибке, связанной с .SYS file, проблема, вероятно, может быть связана с поврежденными или устаревшими драйверами устройств, которые необходимо обновить. Данный процесс можно облегчить посредством использования программного обеспечения для обновления драйверов, такого как DriverDoc.
Чтение текстовых файлов в VBA
В нынешнее время использование текстовых файлов для обмена данными или хранения данных становится редкостью, но тем не менее, все еще встречается. Приведу два варианта чтения текстового файла из VBA. Каждый способ может быть полезен в своей ситуации.
Способ 1. Открытие (чтение) текстового файла целиком
Можно открыть текстовый файл без учета каких-либо разделителей, сплошным текстом:
Set objExcel = New Excel.Application Set wb = objExcel.Workbooks.Open("имя_файла")
либо, если используются разделители колонок, можно их задействовать:
Открытие текстового файла с разделителем Tab:
Set objExcel = New Excel.Application Set wb = objExcel.Workbooks wb.OpenText Filename:="имя_файла", DataType:=xlDelimited, Tab:=True
Открытие текстового файла с разделителем ; (точка с запятой):
Set objExcel = New Excel.Application Set wb = objExcel.Workbooks wb.OpenText Filename:="имя_файла", DataType:=xlDelimited, Other:=True, OtherChar:=";"
В параметрах можно так же добавить Origin:=xlMSDOS, если текстовый файл в DOS-кодировке.
После открытия файла, его можно пройти как обычные ячейки Excel-кого листа.
Способ 2. Чтение текстового файла построчно
Здесь используется классический вариант чтения как в большинстве языков программирования: открытие файла, цикл чтения построчно, закрытие файла.
f = FreeFile Open "имя_файла" For Input As #f Do While Not EOF(f) Line Input #f, s ' что-нибудь делаем с полученной строкой s Loop Close f
В первой строке определяем число, представляющее следующий номер файла, доступный для использования оператором Open. Затем открываем файл, после чего делаем цикл в котором происходит построчное чтение.
Операции с файлами и каталогами - Visual Basic
- Чтение занимает 7 мин
В этой статье
В этом пошаговом руководстве приводятся основные сведения о файловом вводе-выводе в Visual Basic.This walkthrough provides an introduction to the fundamentals of file I/O in Visual Basic. В нем описывается создание небольшого приложения, перечисляющего текстовые файлы в каталоге и анализирующего их.It describes how to create a small application that lists and examines text files in a directory. Для каждого выбранного текстового файла приложение предоставляет атрибуты файла и первую строку содержимого.For each selected text file, the application provides file attributes and the first line of content. Кроме того, предоставляется возможность записать информацию в файл журнала.There is an option to write information to a log file.
В этом пошаговом руководстве используются члены My.Computer.FileSystem Object
, доступные в Visual Basic.This walkthrough uses members of the My.Computer.FileSystem Object
, which are available in Visual Basic. Дополнительные сведения см. в разделе FileSystem.See FileSystem for more information. В конце пошагового руководства приводится эквивалентный пример, в котором используются классы пространства имен System.IO.At the end of the walkthrough, an equivalent example is provided that uses classes from the System.IO namespace.
Примечание
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. Это зависит от имеющегося выпуска Visual Studio и используемых параметров.The Visual Studio edition that you have and the settings that you use determine these elements. Дополнительные сведения см. в разделе Персонализация среды IDE.For more information, see Personalizing the IDE.
Создание проектаTo create the project
В меню Файл выберите пункт Создать проект.On the File menu, click New Project.
Откроется диалоговое окно Новый проект .The New Project dialog box appears.
В области Установленные шаблоны разверните узел Visual Basic и выберите элемент Windows.In the Installed Templates pane, expand Visual Basic, and then click Windows. В середине области Шаблоны щелкните Приложение Windows Forms.In the Templates pane in the middle, click Windows Forms Application.
В поле Имя введите
FileExplorer
, чтобы задать имя проекта, а затем нажмите кнопку ОК.In the Name box, typeFileExplorer
to set the project name, and then click OK.Visual Studio добавит проект в обозреватель решений, после чего откроется конструктор Windows Forms.Visual Studio adds the project to Solution Explorer, and the Windows Forms Designer opens.
Добавьте в форму элементы управления из приведенной ниже таблицы и установите для их свойств соответствующие значения.Add the controls in the following table to the form, and set the corresponding values for their properties.
Элемент управленияControl СвойствоProperty ЗначениеValue ListBoxListBox НазваниеName filesListBox
КнопкаButton НазваниеName ТекстText
browseButton
ОбзорBrowse
КнопкаButton НазваниеName ТекстText
examineButton
ИсследоватьExamine
CheckBoxCheckBox НазваниеName ТекстText
saveCheckBox
Сохранить результатыSave Results
FolderBrowserDialogFolderBrowserDialog НазваниеName FolderBrowserDialog1
Выбор папки и перечисление файлов в нейTo select a folder, and list files in a folder
Создайте обработчик событий нажатия
Click
для кнопкиbrowseButton
, дважды щелкнув этот элемент управления в форме.Create aClick
event handler forbrowseButton
by double-clicking the control on the form. Откроется редактор кода.The Code Editor opens.Добавьте следующий код в обработчик событий
Click
.Add the following code to theClick
event handler.If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then ' List files in the folder. ListFiles(FolderBrowserDialog1.SelectedPath) End If
Вызов
FolderBrowserDialog1.ShowDialog
открывает диалоговое окно Выбор папки.TheFolderBrowserDialog1.ShowDialog
call opens the Browse For Folder dialog box. Когда пользователь нажимает OK, свойство SelectedPath передается как аргумент методуListFiles
, который добавляется в следующем шаге.After the user clicks OK, the SelectedPath property is sent as an argument to theListFiles
method, which is added in the next step.Добавьте приведенный ниже метод
ListFiles
.Add the followingListFiles
method.Private Sub ListFiles(ByVal folderPath As String) filesListBox.Items.Clear() Dim fileNames = My.Computer.FileSystem.GetFiles( folderPath, FileIO.SearchOption.SearchTopLevelOnly, "*.txt") For Each fileName As String In fileNames filesListBox.Items.Add(fileName) Next End Sub
Этот код сперва очищает элемент ListBox.This code first clears the ListBox.
Затем метод GetFiles возвращает коллекцию строк — по одной для каждого файла в каталоге.The GetFiles method then retrieves a collection of strings, one for each file in the directory. Метод
GetFiles
принимает аргумент шаблона поиска, чтобы извлечь файлы, соответствующие определенному шаблону.TheGetFiles
method accepts a search pattern argument to retrieve files that match a particular pattern. В этом примере возвращаются только файлы с расширением TXT.In this example, only files that have the extension .txt are returned.Строки, возвращаемые методом
GetFiles
, затем добавляются в элемент управления ListBox.The strings that are returned by theGetFiles
method are then added to the ListBox.Запустите приложение.Run the application. Нажмите кнопку Обзор.Click the Browse button. В диалоговом окне Выбор папки перейдите в папку, содержащую TXT-файлы, выберите папку и нажмите кнопку ОК.In the Browse For Folder dialog box, browse to a folder that contains .txt files, and then select the folder and click OK.
Элемент
ListBox
содержит список TXT-файлов в выбранной папке.TheListBox
contains a list of .txt files in the selected folder.Остановите работу приложения.Stop running the application.
Получение атрибутов файла и содержимого текстового файлаTo obtain attributes of a file, and content from a text file
Создайте обработчик событий нажатия
Click
для кнопкиexamineButton
, дважды щелкнув этот элемент управления в форме.Create aClick
event handler forexamineButton
by double-clicking the control on the form.Добавьте следующий код в обработчик событий
Click
.Add the following code to theClick
event handler.If filesListBox.SelectedItem Is Nothing Then MessageBox.Show("Please select a file.") Exit Sub End If ' Obtain the file path from the list box selection. Dim filePath = filesListBox.SelectedItem.ToString ' Verify that the file was not removed since the ' Browse button was clicked. If My.Computer.FileSystem.FileExists(filePath) = False Then MessageBox.Show("File Not Found: " & filePath) Exit Sub End If ' Obtain file information in a string. Dim fileInfoText As String = GetTextForOutput(filePath) ' Show the file information. MessageBox.Show(fileInfoText)
Этот код проверяет, выбран ли элемент в элементе
ListBox
.The code verifies that an item is selected in theListBox
. Затем он получает запись пути к файлу из элементаListBox
.It then obtains the file path entry from theListBox
. Метод FileExists позволяет проверить, существует ли файл.The FileExists method is used to check whether the file still exists.Путь к файлу передается как аргумент методу
GetTextForOutput
, который добавляется в следующем шаге.The file path is sent as an argument to theGetTextForOutput
method, which is added in the next step. Этот метод возвращает строку, содержащую информацию о файле.This method returns a string that contains file information. Информация о файле отображается в элементе MessageBox.The file information appears in a MessageBox.Добавьте приведенный ниже метод
GetTextForOutput
.Add the followingGetTextForOutput
method.Private Function GetTextForOutput(ByVal filePath As String) As String ' Verify that the file exists. If My.Computer.FileSystem.FileExists(filePath) = False Then Throw New Exception("File Not Found: " & filePath) End If ' Create a new StringBuilder, which is used ' to efficiently build strings. Dim sb As New System.Text.StringBuilder() ' Obtain file information. Dim thisFile As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo(filePath) ' Add file attributes. sb.Append("File: " & thisFile.FullName) sb.Append(vbCrLf) sb.Append("Modified: " & thisFile.LastWriteTime.ToString) sb.Append(vbCrLf) sb.Append("Size: " & thisFile.Length.ToString & " bytes") sb.Append(vbCrLf) ' Open the text file. Dim sr As System.IO.StreamReader = My.Computer.FileSystem.OpenTextFileReader(filePath) ' Add the first line from the file. If sr.Peek() >= 0 Then sb.Append("First Line: " & sr.ReadLine()) End If sr.Close() Return sb.ToString End Function
Метод GetFileInfo используется в коде для получения параметров файла.The code uses the GetFileInfo method to obtain file parameters. Параметры файла добавляются в StringBuilder.The file parameters are added to a StringBuilder.
Метод OpenTextFileReader считывает содержимое файла в StreamReader.The OpenTextFileReader method reads the file contents into a StreamReader. Первая строка содержимого файла извлекается из
StreamReader
и добавляется вStringBuilder
.The first line of the contents is obtained from theStreamReader
and is added to theStringBuilder
.Запустите приложение.Run the application. Нажмите кнопку Обзор и перейдите в папку с TXT-файлами.Click Browse, and browse to a folder that contains .txt files. Нажмите кнопку ОК.Click OK.
Выберите файл в элементе
ListBox
и щелкните Исследовать.Select a file in theListBox
, and then click Examine. В окнеMessageBox
будет выведена информация о файле.AMessageBox
shows the file information.Остановите работу приложения.Stop running the application.
Добавление записи в журналTo add a log entry
В конец обработчика событий
examineButton_Click
добавьте приведенный ниже код.Add the following code to the end of theexamineButton_Click
event handler.If saveCheckBox.Checked = True Then ' Place the log file in the same folder as the examined file. Dim logFolder As String = My.Computer.FileSystem.GetFileInfo(filePath).DirectoryName Dim logFilePath = My.Computer.FileSystem.CombinePath(logFolder, "log.txt") Dim logText As String = "Logged: " & Date.Now.ToString & vbCrLf & fileInfoText & vbCrLf & vbCrLf ' Append text to the log file. My.Computer.FileSystem.WriteAllText(logFilePath, logText, append:=True) End If
Код задает путь к файлу журнала, чтобы файл журнала помещался в тот же каталог, где находится выбранный файл.The code sets the log file path to put the log file in the same directory as that of the selected file. Запись журнала должна содержать текущие дату и время, а далее информацию о файле.The text of the log entry is set to the current date and time followed by the file information.
Метод WriteAllText, которому передается аргумент
append
со значениемTrue
, используется для создания записи в журнале.The WriteAllText method, with theappend
argument set toTrue
, is used to create the log entry.Запустите приложение.Run the application. Перейдите к текстовому файлу, выберите его в элементе
ListBox
, установите флажок Сохранить результаты и щелкните Исследовать.Browse to a text file, select it in theListBox
, select the Save Results check box, and then click Examine. Проверьте, добавлена ли запись в файлlog.txt
.Verify that the log entry is written to thelog.txt
file.Остановите работу приложения.Stop running the application.
Использование текущего каталогаTo use the current directory
Создайте обработчик событий для события
Form1_Load
, дважды щелкнув форму.Create an event handler forForm1_Load
by double-clicking the form.Добавьте в обработчик событий приведенный ниже код.Add the following code to the event handler.
' Set the default directory of the folder browser to the current directory. FolderBrowserDialog1.SelectedPath = My.Computer.FileSystem.CurrentDirectory
Этот код задает текущий каталог в качестве каталога по умолчанию для обозревателя папок.This code sets the default directory of the folder browser to the current directory.
Запустите приложение.Run the application. При первом нажатии кнопки Обзор открывается диалоговое окно Выбор папки с текущим каталогом.When you click Browse the first time, the Browse For Folder dialog box opens to the current directory.
Остановите работу приложения.Stop running the application.
Выборочное включение элементов управленияTo selectively enable controls
Добавьте приведенный ниже метод
SetEnabled
.Add the followingSetEnabled
method.Private Sub SetEnabled() Dim anySelected As Boolean = (filesListBox.SelectedItem IsNot Nothing) examineButton.Enabled = anySelected saveCheckBox.Enabled = anySelected End Sub
Метод
SetEnabled
включает и отключает элементы управления в зависимости от того, выбран ли элемент в элементеListBox
.TheSetEnabled
method enables or disables controls depending on whether an item is selected in theListBox
.Создайте обработчик событий
SelectedIndexChanged
для элементаfilesListBox
, дважды щелкнув элемент управленияListBox
в форме.Create aSelectedIndexChanged
event handler forfilesListBox
by double-clicking theListBox
control on the form.Добавьте вызов метода
SetEnabled
в новый обработчик событийfilesListBox_SelectedIndexChanged
.Add a call toSetEnabled
in the newfilesListBox_SelectedIndexChanged
event handler.Добавьте вызов метода
SetEnabled
в конце обработчика событийbrowseButton_Click
.Add a call toSetEnabled
at the end of thebrowseButton_Click
event handler.Добавьте вызов метода
SetEnabled
в конце обработчика событийForm1_Load
.Add a call toSetEnabled
at the end of theForm1_Load
event handler.Запустите приложение.Run the application. Флажок Сохранить результаты и кнопка Исследовать отключены, если элемент не выбран в элементе
ListBox
.The Save Results check box and the Examine button are disabled if an item is not selected in theListBox
.
Полный пример с использованием My.Computer.FileSystemFull example using My.Computer.FileSystem
Ниже приведен полный пример.Following is the complete example.
' This example uses members of the My.Computer.FileSystem ' object, which are available in Visual Basic. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Set the default directory of the folder browser to the current directory. FolderBrowserDialog1.SelectedPath = My.Computer.FileSystem.CurrentDirectory SetEnabled() End Sub Private Sub browseButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles browseButton.Click If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then ' List files in the folder. ListFiles(FolderBrowserDialog1.SelectedPath) End If SetEnabled() End Sub Private Sub ListFiles(ByVal folderPath As String) filesListBox.Items.Clear() Dim fileNames = My.Computer.FileSystem.GetFiles( folderPath, FileIO.SearchOption.SearchTopLevelOnly, "*.txt") For Each fileName As String In fileNames filesListBox.Items.Add(fileName) Next End Sub Private Sub examineButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles examineButton.Click If filesListBox.SelectedItem Is Nothing Then MessageBox.Show("Please select a file.") Exit Sub End If ' Obtain the file path from the list box selection. Dim filePath = filesListBox.SelectedItem.ToString ' Verify that the file was not removed since the ' Browse button was clicked. If My.Computer.FileSystem.FileExists(filePath) = False Then MessageBox.Show("File Not Found: " & filePath) Exit Sub End If ' Obtain file information in a string. Dim fileInfoText As String = GetTextForOutput(filePath) ' Show the file information. MessageBox.Show(fileInfoText) If saveCheckBox.Checked = True Then ' Place the log file in the same folder as the examined file. Dim logFolder As String = My.Computer.FileSystem.GetFileInfo(filePath).DirectoryName Dim logFilePath = My.Computer.FileSystem.CombinePath(logFolder, "log.txt") Dim logText As String = "Logged: " & Date.Now.ToString & vbCrLf & fileInfoText & vbCrLf & vbCrLf ' Append text to the log file. My.Computer.FileSystem.WriteAllText(logFilePath, logText, append:=True) End If End Sub Private Function GetTextForOutput(ByVal filePath As String) As String ' Verify that the file exists. If My.Computer.FileSystem.FileExists(filePath) = False Then Throw New Exception("File Not Found: " & filePath) End If ' Create a new StringBuilder, which is used ' to efficiently build strings. Dim sb As New System.Text.StringBuilder() ' Obtain file information. Dim thisFile As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo(filePath) ' Add file attributes. sb.Append("File: " & thisFile.FullName) sb.Append(vbCrLf) sb.Append("Modified: " & thisFile.LastWriteTime.ToString) sb.Append(vbCrLf) sb.Append("Size: " & thisFile.Length.ToString & " bytes") sb.Append(vbCrLf) ' Open the text file. Dim sr As System.IO.StreamReader = My.Computer.FileSystem.OpenTextFileReader(filePath) ' Add the first line from the file. If sr.Peek() >= 0 Then sb.Append("First Line: " & sr.ReadLine()) End If sr.Close() Return sb.ToString End Function Private Sub filesListBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles filesListBox.SelectedIndexChanged SetEnabled() End Sub Private Sub SetEnabled() Dim anySelected As Boolean = (filesListBox.SelectedItem IsNot Nothing) examineButton.Enabled = anySelected saveCheckBox.Enabled = anySelected End Sub
Полный пример с использованием System.IOFull example using System.IO
Следующий пример выполняет те же действия, используя классы из пространства имен System.IO вместо объектов My.Computer.FileSystem
.The following equivalent example uses classes from the System.IO namespace instead of using My.Computer.FileSystem
objects.
' This example uses classes from the System.IO namespace. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Set the default directory of the folder browser to the current directory. FolderBrowserDialog1.SelectedPath = System.IO.Directory.GetCurrentDirectory() SetEnabled() End Sub Private Sub browseButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles browseButton.Click If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then ' List files in the folder. ListFiles(FolderBrowserDialog1.SelectedPath) SetEnabled() End If End Sub Private Sub ListFiles(ByVal folderPath As String) filesListBox.Items.Clear() Dim fileNames As String() = System.IO.Directory.GetFiles(folderPath, "*.txt", System.IO.SearchOption.TopDirectoryOnly) For Each fileName As String In fileNames filesListBox.Items.Add(fileName) Next End Sub Private Sub examineButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles examineButton.Click If filesListBox.SelectedItem Is Nothing Then MessageBox.Show("Please select a file.") Exit Sub End If ' Obtain the file path from the list box selection. Dim filePath = filesListBox.SelectedItem.ToString ' Verify that the file was not removed since the ' Browse button was clicked. If System.IO.File.Exists(filePath) = False Then MessageBox.Show("File Not Found: " & filePath) Exit Sub End If ' Obtain file information in a string. Dim fileInfoText As String = GetTextForOutput(filePath) ' Show the file information. MessageBox.Show(fileInfoText) If saveCheckBox.Checked = True Then ' Place the log file in the same folder as the examined file. Dim logFolder As String = System.IO.Path.GetDirectoryName(filePath) Dim logFilePath = System.IO.Path.Combine(logFolder, "log.txt") ' Append text to the log file. Dim logText As String = "Logged: " & Date.Now.ToString & vbCrLf & fileInfoText & vbCrLf & vbCrLf System.IO.File.AppendAllText(logFilePath, logText) End If End Sub Private Function GetTextForOutput(ByVal filePath As String) As String ' Verify that the file exists. If System.IO.File.Exists(filePath) = False Then Throw New Exception("File Not Found: " & filePath) End If ' Create a new StringBuilder, which is used ' to efficiently build strings. Dim sb As New System.Text.StringBuilder() ' Obtain file information. Dim thisFile As New System.IO.FileInfo(filePath) ' Add file attributes. sb.Append("File: " & thisFile.FullName) sb.Append(vbCrLf) sb.Append("Modified: " & thisFile.LastWriteTime.ToString) sb.Append(vbCrLf) sb.Append("Size: " & thisFile.Length.ToString & " bytes") sb.Append(vbCrLf) ' Open the text file. Dim sr As System.IO.StreamReader = System.IO.File.OpenText(filePath) ' Add the first line from the file. If sr.Peek() >= 0 Then sb.Append("First Line: " & sr.ReadLine()) End If sr.Close() Return sb.ToString End Function Private Sub filesListBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles filesListBox.SelectedIndexChanged SetEnabled() End Sub Private Sub SetEnabled() Dim anySelected As Boolean = (filesListBox.SelectedItem IsNot Nothing) examineButton.Enabled = anySelected saveCheckBox.Enabled = anySelected End Sub
См. также разделSee also
Чтение из файлов - Visual Basic
- Чтение занимает 2 мин
В этой статье
В этом руководстве рассказывается, как выполнять задачи, связанные с чтением из файлов.This section explains how to perform tasks that are associated with reading from files.
СодержаниеIn This Section
Практическое руководство. Чтение из текстовых файловHow to: Read from Text Files
В этом руководстве рассказывается, как выполнять чтение из текстового файла.Demonstrates how to read from a text file.
Практическое руководство. Чтение из текстовых файлов с разделителями-запятымиHow to: Read From Comma-Delimited Text Files
В этом руководстве рассказывается, как выполнять чтение из текстовых файлов с разделителями-запятыми.Demonstrates how to read from a delimited text file.
Практическое руководство. Чтение из текстовых файлов с полями фиксированного размераHow to: Read From Fixed-width Text Files
В этом руководстве рассказывается, как выполнять чтение из файлов с полями фиксированного размера.Demonstrates how to read from a fixed-width text file.
Практическое руководство. Чтение из текстовых файлов различных форматовHow to: Read From Text Files with Multiple Formats
В этом руководстве рассказывается, как выполнять чтение из текстовых файлов различных форматов.Demonstrates how to read from a text file with multiple formats.
Практическое руководство. Чтение из двоичных файловHow to: Read From Binary Files
В этом руководстве рассказывается, как выполнять чтение из двоичных файлов.Demonstrates how to read from a binary file.
Практическое руководство. Чтение текста из файлов с помощью StreamReaderHow to: Read Text from Files with a StreamReader
Демонстрирует, как использовать StreamReader для чтения из двоичных файлов.Demonstrates how to use a StreamReader to read from a file.
СправочникReference
FileSystem
Описание объекта My.Computer.FileSystem
и его членов.Describes the My.Computer.FileSystem
object and its members.
ReadAllText
Описывает метод ReadAllText
.Describes the ReadAllText
method.
ReadAllBytes
Описывает метод ReadAllBytes
.Describes the ReadAllBytes
method.
OpenTextFieldParser
Описывает метод OpenTextFieldParser
.Describes the OpenTextFieldParser
method.
OpenTextFileReader
Описывает метод OpenTextFileReader
.Describes the OpenTextFileReader
method.
Запись данных в буфер обмена и чтение их оттудаStoring Data to and Reading from the Clipboard
Объясняет, как выполнять задачи, связанные с My.Computer.Clipboard
, такие как чтение данных и запись данных в буфер обмена.Explains how to perform tasks that are associated with My.Computer.Clipboard
, such as reading data from or writing data to the Clipboard.
Анализ текстовых файлов с помощью объекта TextFieldParserParsing Text Files with the TextFieldParser Object
Содержит общие сведения о чтении текстовых файлов с помощью объекта TextFieldParser
.Provides an overview of reading text files with the TextFieldParser
object.
Пошаговое руководство. Операции с файлами и каталогами в Visual BasicWalkthrough: Manipulating Files and Directories in Visual Basic
Объясняет, как использовать функцию My
с файлами и каталогами.Demonstrates how to use the My
feature with files and directories.
Пошаговое руководство. Управление файлами с помощью методов .NET FrameworkWalkthrough: Manipulating Files by Using .NET Framework Methods
Объясняет, как использовать методы .NET Framework с файлами и каталогами.Demonstrates how to use .NET Framework methods with files and directories.
Функции VBA для работы с текстовыми файлами
Данные функции предназначены для работы с текстовыми файлами из VBA Excel.
Используя эти функции, вы при помощи одной строки кода сможете записать текст из переменной в файл, или наоборот, загрузить содержимое текстового файла в переменную.
Чтение текстового файла в переменную:
Function ReadTXTfile(ByVal filename As String) As String Set fso = CreateObject("scripting.filesystemobject") Set ts = fso.OpenTextFile(filename, 1, True): ReadTXTfile = ts.ReadAll: ts.Close Set ts = Nothing: Set fso = Nothing End FunctionЗапись в текстовый файл из переменной:
Function SaveTXTfile(ByVal filename As String, ByVal txt As String) As Boolean On Error Resume Next: Err.Clear Set fso = CreateObject("scripting.filesystemobject") Set ts = fso.CreateTextFile(filename, True) ts.Write txt: ts.Close SaveTXTfile = Err = 0 Set ts = Nothing: Set fso = Nothing End FunctionДобавление в текстовый файл из переменной:
Function AddIntoTXTfile(ByVal filename As String, ByVal txt As String) As Boolean On Error Resume Next: Err.Clear Set fso = CreateObject("scripting.filesystemobject") Set ts = fso.OpenTextFile(filename, 8, True): ts.Write txt: ts.Close Set ts = Nothing: Set fso = Nothing AddIntoTXTfile = Err = 0 End Function
Практическое руководство. Чтение из текстовых файлов - Visual Basic
- Чтение занимает 2 мин
В этой статье
Метод ReadAllText объекта My.Computer.FileSystem
позволяет считывать данные из текстового файла.The ReadAllText method of the My.Computer.FileSystem
object allows you to read from a text file. Если содержимое файла имеет определенную кодировку, например ASCII или UTF-8, ее можно указать в аргументе.The file encoding can be specified if the contents of the file use an encoding such as ASCII or UTF-8.
Если вы производите чтение из файла с символами национальных алфавитов, необходимо указать кодировку файла.If you are reading from a file with extended characters, you will need to specify the file encoding.
Примечание
Чтобы прочитать файл по одной строке, используйте метод OpenTextFileReader объекта My.Computer.FileSystem
.To read a file a single line of text at a time, use the OpenTextFileReader method of the My.Computer.FileSystem
object. Метод OpenTextFileReader
возвращает объект StreamReader.The OpenTextFileReader
method returns a StreamReader object. С помощью метода ReadLine объекта StreamReader
можно прочитать файл по одной строке.You can use the ReadLine method of the StreamReader
object to read a file one line at a time. Проверить, достигнут ли конец файла, можно с помощью метода EndOfStream объекта StreamReader
.You can test for the end of the file using the EndOfStream method of the StreamReader
object.
Чтение данных из текстового файлаTo read from a text file
Для считывания содержимого текстового файла в строку используйте метод ReadAllText
объекта My.Computer.FileSystem
, указав путь.Use the ReadAllText
method of the My.Computer.FileSystem
object to read the contents of a text file into a string, supplying the path. В следующем примере содержимое файла test.txt считывается в строку и затем отображается в окне сообщения.The following example reads the contents of test.txt into a string and then displays it in a message box.
Dim fileReader As String fileReader = My.Computer.FileSystem.ReadAllText("C:\test.txt") MsgBox(fileReader)
Чтение данных из зашифрованного текстового файлаTo read from a text file that is encoded
Для считывания содержимого текстового файла в строку используйте метод ReadAllText
объекта My.Computer.FileSystem
, указав путь и тип кодировки файла.Use the ReadAllText
method of the My.Computer.FileSystem
object to read the contents of a text file into a string, supplying the path and file encoding type. В следующем примере содержимое файла test.txt в кодировке UTF32 считывается в строку и затем отображается в окне сообщения.The following example reads the contents of the UTF32 file test.txt into a string and then displays it in a message box.
Dim fileReader As String fileReader = My.Computer.FileSystem.ReadAllText("C:\test.txt", System.Text.Encoding.UTF32) MsgBox(fileReader)
ОтказоустойчивостьRobust Programming
При следующих условиях возможно возникновение исключения:The following conditions may cause an exception:
Путь является недопустимым, поскольку путь представляет собой строку нулевой длины (пустую строку), либо содержит только пробелы, либо содержит недопустимые знаки, либо представляет собой путь к устройству (ArgumentException).The path is not valid for one of the following reasons: it is a zero-length string, it contains only white space, it contains invalid characters, or it is a device path (ArgumentException).
Путь не является допустимым, поскольку он равен
Nothing
(ArgumentNullException).The path is not valid because it isNothing
(ArgumentNullException).Файл не существует (FileNotFoundException).The file does not exist (FileNotFoundException).
Файл уже используется другим процессом или возникла ошибка ввода-вывода (IOException).The file is in use by another process or an I/O error occurs (IOException).
Длина пути превышает максимальную длину, определенную в системе (PathTooLongException).The path exceeds the system-defined maximum length (PathTooLongException).
Имя файла или каталога в пути содержит двоеточие (:) или имеет недопустимый формат (NotSupportedException).A file or directory name in the path contains a colon (:) or is in an invalid format (NotSupportedException).
Не хватает памяти для записи строки в буфер (OutOfMemoryException).There is not enough memory to write the string to buffer (OutOfMemoryException).
У пользователя отсутствуют необходимые разрешения на просмотр пути (SecurityException).The user lacks necessary permissions to view the path (SecurityException).
По имени файла не всегда можно с уверенностью судить о его содержимом.Do not make decisions about the contents of the file based on the name of the file. Например, файл с именем Form1.vb может вовсе не быть исходным файлом Visual Basic.For example, the file Form1.vb may not be a Visual Basic source file.
Следует проверять все входные данные перед использованием их в приложении.Verify all inputs before using the data in your application. Содержимое файла может отличаться от ожидаемого, поэтому может не удаться прочесть файл с помощью методов чтения.The contents of the file may not be what is expected, and methods to read from the file may fail.
См. такжеSee also
Открыть файл Excel для чтения с помощью VBA без дисплея
Переполнение стека- Около
- Товары
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
VBA FileDialog - открытие, выбор и сохранение файлов и папок
Часто в VBA нам нужно попросить пользователей выбрать файлы или каталоги, прежде чем мы выполним фактическую функциональность нашего макроса. Добро пожаловать в диалоговое окно открытия файла VBA. Сегодня мы узнаем, как использовать Application.FileDialog , чтобы понять различные параметры выбора диалогового окна файла msoFileDialogFilePicker и как правильно управлять этими диалоговыми окнами.
Вот простой пример диалогового окна файла VBA:
Dim fDialog как FileDialog Установите fDialog = Application.FileDialog (мсофиледиалогфилепикер) 'Показать диалог. -1 означает успех! Если fDialog.Show = -1 Тогда Debug.Print fDialog.SelectedItems (1) 'Полный путь к файлу, выбранному пользователем Конец, если
Dim fDialog As FileDialog Установить fDialog = Application.FileDialog (msoFileDialogFilePicker)
'Показать диалоговое окно. -1 означает успех! Если fDialog.Show = -1, то Debug.Print fDialog.SelectedItems (1) 'Полный путь к файлу, выбранному пользователем End If |
Функция Application.FileDialog
Прежде чем мы начнем, давайте разберемся с функцией Application.FileDialog .
Application.FileDialog имеет следующий синтаксис:
Application.FileDialog (fileDialogType как MsoFileDialogType)
Приложение.FileDialog (fileDialogType как MsoFileDialogType) |
Параметр
MsoFileDialogType
Перечисление, определяющее тип открываемого диалогового окна файла. Имеет следующие значения:
Значение | Описание |
---|---|
MSOFileDialogOpen | Открыть диалоговое окно |
msoFileDialogSaveAs | Диалоговое окно "Сохранить как" |
msoFileDialogFilePicker | Диалоговое окно выбора файла |
msoFileDialogFolderPicker | Диалоговое окно выбора папки |
Свойства и функции
Свойства FileDialog
Объект | Описание | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
AllowMultiSelect | Разрешить выбрать более одного файла или папки | |||||||||
Имя кнопки | Текст, отображаемый на кнопке действия в диалоговом окне файла | |||||||||
DialogType | Измените MsoFileDialogType (см. Выше) | |||||||||
Фильтр | Установить фильтр файлов для фильтрации типов файлов, которые пользователь может выбрать | |||||||||
InitialFileName | Начальный путь, который нужно открыть e.грамм. К: \ | |||||||||
Начальный просмотр | Начальный просмотр файла. Может быть одним из следующих:
| |||||||||
Выбранные позиции | Коллекция типа FileDialogSelectedItems со всеми выбранными элементами | |||||||||
Название | Заголовок диалогового окна открытия файла |
Выбрать файлы - msoFileDialogFilePicker
Диалоговое окно msoFileDialogFilePicker типа позволяет выбрать один или несколько файлов .
Выбрать отдельные файлы
Наиболее распространенный сценарий выбора файла предлагает пользователю выбрать один файл. Код ниже делает именно это:
Dim fDialog As FileDialog, результат как целое число Установите fDialog = Application.FileDialog (msoFileDialogFilePicker) 'Необязательно: свойства FileDialog fDialog.AllowMultiSelect = Ложь fDialog.title = "Выберите файл" fDialog.InitialFileName = "C: \" 'Необязательно: добавьте фильтры fDialog.Filters.Clear fDialog.Фильтры. Добавьте «файлы Excel», «* .xlsx». fDialog.Filters.Add "Все файлы", "*. *" 'Показать диалог. -1 означает успех! Если fDialog.Show = -1 Тогда Debug.Print fDialog.SelectedItems (1) Конец, если 'Результат: C: \ somefile.xlsx
1 2 3 4 5 6 7 8 9 10 11 12 13 140002 13 14 18 | Dim fDialog As FileDialog, result As Integer Установить fDialog = Application.FileDialog (msoFileDialogFilePicker)
'Необязательно: свойства FileDialog fDialog.AllowMultiSelect = False fDialog.title = "Выбрать файл" fDialog.InitialFile2: Добавить fDialog.InitialFile2 fDialog.Filters.Clear fDialog.Filters.Add «Excel files», «* .xlsx» fDialog.Filters.Add «All files», «*. *»
'Показать диалоговое окно. -1 означает успех! Если fDialog.Show = -1 Then Debug.Print fDialog.SelectedItems (1) End If
'Результат: C: \ somefile.xlsx |
Выбрать несколько файлов
Довольно распространен сценарий, когда вы просите пользователя выбрать один или несколько файлов. Код ниже делает именно это. Обратите внимание, что вам нужно установить для AllowMultiSelect значение True.
Dim fDialog As FileDialog, результат как целое число Установите fDialog = Application.FileDialog (мсофиледиалогфилепикер) 'ВАЖНЫЙ! fDialog.AllowMultiSelect = True 'Необязательные свойства FileDialog fDialog.title = "Выберите файл" fDialog.InitialFileName = "C: \" 'Необязательно: добавьте фильтры fDialog.Filters.Clear fDialog.Filters.Add «файлы Excel», «* .xlsx» fDialog.Filters.Add "Все файлы", "*. *" 'Показать диалог. -1 означает успех! Если fDialog.Show = -1 Тогда Для каждого элемента в fDialog.SelectedItems Отладка. Распечатать Далее это Конец, если 'Полученные результаты: 'C: \ somefile.xlsx 'C: \ somefile1.xlsx 'C: \ somefile2.xlsx
1 2 3 4 5 6 7 8 9 10 11 12 13 140002 13 14 18 19 20 21 22 23 24 25 | Dim fDialog As FileDialog, result As Integer Установить fDialog = Application.FileDialog (msoFileDialogFilePicker)
'ВАЖНО! fDialog.AllowMultiSelect = True
'Необязательные свойства FileDialog fDialog.title = "Выберите файл" fDialog.InitialFileName = "C: \" ' Необязательно: добавьте фильтры 9000.Filters . Очистить fDialog.Filters.Add «Excel files», «* .xlsx» fDialog.Filters.Add «All files», «*. *»
'Показать диалоговое окно. -1 означает успех! Если fDialog.Показать = -1 Затем Для каждого в fDialog.SelectedItems Отладка. Распечатать Далее Конец Если
'Результаты: ' C: \ somefile.xlsx 'C: \ somefile1.xlsx 'C: \ somefile2.xlsx |
Выберите папку - msoFileDialogFilePicker
Выбрать папку проще, чем выбрать файлы. Однако в одном диалоговом окне можно выбрать только одну папку.
Выберите пример папки
В диалоговом окне ниже пользователя попросят выбрать папку:
Установите fDialog = Application.FileDialog (msoFileDialogFolderPicker) 'Важно, что мы используем msoFileDialogFolderPicker вместо (...) FilePicker 'Необязательно: свойства FileDialog fDialog.title = "Выберите папку" fDialog.InitialFileName = "C: \" Если fDialog.Show = -1 Тогда Debug.Print fDialog.SelectedItems (1) Конец, если
Установите fDialog = Application.FileDialog (msoFileDialogFolderPicker) 'Важно, чтобы мы использовали msoFileDialogFolderPicker вместо (...) FilePicker
' Необязательно: свойства FileDialog fDialog.title = "Выберите папку" fDialog.Name = fDialog. Если fDialog.Show = -1, то Debug.Print fDialog.SelectedItems (1) End If |
Диалоговое окно msoFileDialogFolderPicker позволяет выбрать только ОДНУ папку и, очевидно, не поддерживает папки с файлами.
Открыть файл - msoFileDialogOpen
Открывать файлы намного проще, поскольку обычно используется один файл. Единственное различие между режимами выбора и открытия файлов - это метки кнопок.
Пример открытого файла
В диалоговом окне ниже пользователя попросят выбрать файл для открытия:
Dim fDialog как FileDialog, результат как целое число, это как вариант Установите fDialog = Application.FileDialog (msoFileDialogOpen) 'Необязательно: свойства FileDialog fDialog.title = "Выберите файл" fDialog.InitialFileName = "C: \" 'Необязательно: добавьте фильтры fDialog.Filters.Clear fDialog.Filters.Add "Все файлы", "*. *" fDialog.Filters.Add «файлы Excel», «* .xlsx» Если fDialog.Show = -1 Тогда Debug.Print fDialog.SelectedItems (1) Конец, если
Dim fDialog As FileDialog, result As Integer, it As Variant Set fDialog = Application.FileDialog (msoFileDialogOpen)
'Необязательно: Свойства FileDialog fDialog.title 000 "Выберите файл.InitialFileName = "C: \"
'Необязательно: Добавить фильтры fDialog.Filters.Clear fDialog.Filters.Add «Все файлы», «*. *» fDialog.Filters.Add »файлы Excel "," * .xlsx "
Если fDialog.Show = -1, то Debug.Print fDialog.SelectedItems (1) End If |
Сохранить файл - msoFileDialogSaveAs
Сохранение файла также просто, и только кнопки имеют разные названия.
Диалог сохранения файла фактически не сохраняет никаких файлов! Это просто позволит пользователю выбрать имя файла для файла. Вам нужно самостоятельно открывать файлы для чтения / записи. Посмотрите мой пост о том, как писать файлы в VBAСохранить пример файла
В диалоговом окне ниже пользователю будет предложено выбрать путь для сохранения файлов:
Dim fDialog как FileDialog, результат как целое число, это как вариант Установите fDialog = Application.FileDialog (msoFileDialogSaveAs) 'Необязательно: свойства FileDialog fDialog.title = "Сохранить файл" fDialog.InitialFileName = "C: \" Если fDialog.Show = -1 Тогда Debug.Print fDialog.SelectedItems (1) Конец, если
Dim fDialog As FileDialog, result As Integer, it As Variant Set fDialog = Application.FileDialog (msoFileDialogSaveAs)
'Необязательно: Свойства FileDialog fDialog.titleDial = "C: \"
Если fDialog.Show = -1 Then Debug.Print fDialog.SelectedItems (1) End If |
Диалог msoFileDialogSaveAs НЕ поддерживает фильтры файлов
Фильтры FileDialog
Одна из распространенных проблем при работе с Application.FileDialog - установка нескольких фильтров файлов. Ниже приведены несколько распространенных примеров того, как это сделать правильно. Чтобы добавить фильтр для нескольких файлов, используйте точку с запятой ; :
Dim fDialog как FileDialog Установите fDialog = Application.FileDialog (мсофилдиалогопен) '... 'Необязательно: добавьте фильтры fDialog.Filters.Clear fDialog.Filters.Add "Все файлы", "*. *" fDialog.Filters.Add «файлы Excel», «* .xlsx; *. xls; *. xlsm» fDialog.Filters.Add «Текстовые / CSV файлы», «* .txt; *. csv» '...
Dim fDialog As FileDialog Установить fDialog = Application.FileDialog (msoFileDialogOpen) '... ' Дополнительно: добавить фильтры fDialog.Filters.Clear fDialog.Filters.Add "All files", "*. *" fDialog.Filters.Add "Excel files", "* .xlsx; *. Xls; *. Xlsm" fDialog.Filters.Add "Text / CSV files "," * .txt; *. csv " '... |
Обязательно очищайте список фильтров каждый раз . FileDialog имеет свои недостатки, и часто фильтры не очищаются автоматически. Следовательно, при создании нескольких диалогов вы можете увидеть фильтры, поступающие из предыдущих выполненных диалогов, если они не были очищены и повторно запущены должным образом.
Диалог открытия файла фактически не открывает никаких файлов! Это просто позволит пользователю выбрать файлы для открытия. Вам нужно самостоятельно открывать файлы для чтения / записи. Посмотрите мои сообщения: .Открытая инструкция (VBA) | Документы Microsoft
- 2 минуты на чтение
В этой статье
Разрешает ввод / вывод (I / O) в файл.
Синтаксис
Открыть путь Для режима [ Доступ доступ ] [ замок ] Как [ # ] номер файла [ Len = reclength ]
Синтаксис оператора Open состоит из следующих частей:
Деталь | Описание |
---|---|
путь | Обязательно.Строковое выражение, указывающее имя файла; может включать каталог или папку и диск. |
режим | Обязательно. Ключевое слово, определяющее режим файла: Приложение , Двоичное , Входное , Выходное или Случайное . Если не указано иное, файл открывается для произвольного доступа . |
доступ | Необязательно. Ключевое слово, определяющее операции, разрешенные для открытого файла: Чтение , Запись или Чтение Запись . |
замок | Необязательно. Ключевое слово, определяющее операции, ограниченные для открытого файла другими процессами: Shared , Lock Read , Lock Write и Lock Read Write . |
номер файла | Обязательно. Допустимый номер файла в диапазоне от 1 до 511 включительно. Используйте функцию FreeFile , чтобы получить следующий доступный номер файла. |
повторная длина | Необязательно.Число меньше или равно 32 767 (байтов). Для файлов, открытых для произвольного доступа, это значение является длиной записи. Для последовательных файлов это значение представляет собой количество буферизованных символов. |
Примечания
Вы должны открыть файл, прежде чем над ним можно будет выполнить какие-либо операции ввода-вывода. Открыть выделяет буфер для ввода-вывода для файла и определяет режим доступа для использования с буфером.
Если файл, указанный в параметре pathname , не существует, он создается при открытии файла в режимах Append , Binary , Output или Random .
Если файл уже открыт другим процессом и указанный тип доступа не разрешен, операция Открыть завершается ошибкой и возникает ошибка.
Предложение Len игнорируется, если режим равен Binary .
Важно
В режимах Binary , Input и Random вы можете открыть файл, используя другой номер файла, без предварительного закрытия файла. В режимах Приложение и Вывод вы должны закрыть файл, прежде чем открывать его с другим номером файла.
Пример
Этот пример иллюстрирует различные варианты использования оператора Open для включения ввода и вывода в файл.
Следующий код открывает файл в режиме последовательного ввода.
Открыть TESTFILE для ввода как # 1 'Закройте перед повторным открытием в другом режиме. Закрыть # 1
В этом примере файл открывается в двоичном режиме только для операций записи.
Открыть «TESTFILE» для двоичного доступа Запись как # 1 'Закройте перед повторным открытием в другом режиме.Закрыть # 1
В следующем примере файл открывается в произвольном режиме. Файл содержит записи определенного пользователем типа.
Type Record 'Определите определяемый пользователем тип. ID как целое число Имя в виде строки * 20 Тип конца Dim MyRecord As Record 'Объявить переменную. Откройте "TESTFILE" для случайного выбора как # 1 Len = Len (MyRecord) 'Закройте перед повторным открытием в другом режиме. Закрыть # 1
В этом примере кода файл открывается для последовательного вывода; любой процесс может читать или писать в файл.
Открыть TESTFILE для вывода, совместно используемого как # 1 'Закройте перед повторным открытием в другом режиме. Закрыть # 1
Этот пример кода открывает файл в двоичном режиме для чтения; другие процессы не могут прочитать файл.
Открыть "TESTFILE" для двоичного доступа. Блокировка чтения. Прочитать как # 1.
См. Также
Поддержка и отзывы
Есть вопросы или отзывы об Office VBA или этой документации? См. Раздел Поддержка и отзывы Office VBA, чтобы узнать, как получить поддержку и оставить отзыв.
.VBA: как открыть два последних файла Excel в папке
Переполнение стека- Около
- Товары
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики & amp
Рабочих тетрадей. Открытый метод (Excel) | Документы Microsoft
- 5 минут на чтение
В этой статье
Открывает книгу.
Примечание
Заинтересованы в разработке решений, расширяющих возможности Office на нескольких платформах? Ознакомьтесь с новой моделью надстроек Office.Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любые технологии веб-программирования, такие как HTML5, JavaScript, CSS3 и XML.
Синтаксис
выражение . Открыть ( FileName , UpdateLinks , ReadOnly , Format , Password , WriteResPassword , IgnoreReadOnlyRecommended , Origin , Delimiter , Editable , Notify Converter , AddToMru , Локальный , CorruptLoad )
выражение Переменная, представляющая объект Workbooks .
Параметры
Имя | Обязательно / Дополнительно | Тип данных | Описание |
---|---|---|---|
Имя файла | Дополнительно | Вариант | Строка . Имя файла книги, которую нужно открыть. |
Ссылки обновления | Дополнительно | Вариант | Определяет способ внешних ссылок (ссылок) в файле, например ссылки на диапазон в Бюджете.xls по следующей формуле = SUM ([Budget.xls] Annual! C10: C25) , обновляются. Если этот аргумент опущен, пользователю предлагается указать, как будут обновляться ссылки. Дополнительные сведения о значениях, используемых этим параметром, см. В разделе «Примечания». Если Microsoft Excel открывает файл в формате WKS, WK1 или WK3 и аргумент UpdateLinks равен 0, диаграммы не создаются; в противном случае Microsoft Excel создает диаграммы из графиков, прикрепленных к файлу. |
Только чтение | Дополнительно | Вариант | True, чтобы открыть книгу в режиме только для чтения. |
Формат | Дополнительно | Вариант | Если Microsoft Excel открывает текстовый файл, этот аргумент указывает символ-разделитель. Если этот аргумент опущен, используется текущий разделитель. Дополнительные сведения о значениях, используемых этим параметром, см. В разделе «Примечания». |
Пароль | Дополнительно | Вариант | Строка, содержащая пароль, необходимый для открытия защищенной книги.Если этот аргумент опущен и для книги требуется пароль, пользователю предлагается ввести пароль. |
WriteResPassword | Дополнительно | Вариант | Строка, содержащая пароль, необходимый для записи в книгу с зарезервированной записью. Если этот аргумент опущен и для книги требуется пароль, пользователю будет предложено ввести пароль. |
Игнорировать Только чтение Рекомендуется | Дополнительно | Вариант | Истинно , чтобы в Microsoft Excel не отображалось рекомендованное только для чтения сообщение (если книга была сохранена с опцией Рекомендовано только для чтения ). |
Происхождение | Дополнительно | Вариант | Если файл является текстовым файлом, этот аргумент указывает, откуда он возник, чтобы кодовые страницы и возврат каретки / перевод строки (CR / LF) могли быть правильно сопоставлены. Может быть одной из следующих констант XlPlatform : xlMacintosh , xlWindows или xlMSDOS . Если этот аргумент опущен, используется текущая операционная система. |
Разделитель | Дополнительно | Вариант | Если файл является текстовым файлом, а аргумент Format равен 6, этот аргумент представляет собой строку, определяющую символ, который будет использоваться в качестве разделителя.Например, используйте Chr (9) для вкладок, используйте "," для запятых, используйте ";" для точки с запятой или используйте собственный символ. Используется только первый символ строки. |
Редактируемый | Дополнительно | Вариант | Если файл представляет собой надстройку Microsoft Excel 4.0, этот аргумент равен Истинно , чтобы открыть надстройку и сделать ее видимым окном. Если этот аргумент равен False или опущен, надстройка открывается как скрытая, и ее нельзя отобразить.Этот параметр не применяется к надстройкам, созданным в Microsoft Excel 5.0 или более поздней версии. Если файл является шаблоном Excel, Истинно , чтобы открыть указанный шаблон для редактирования. Неверно , чтобы открыть новую книгу на основе указанного шаблона. Значение по умолчанию - Ложь . |
Уведомить | Дополнительно | Вариант | Если файл не может быть открыт в режиме чтения / записи, этот аргумент равен Истина , чтобы добавить файл в список уведомлений о файлах.Microsoft Excel откроет файл как доступный только для чтения, опросит список уведомлений о файлах, а затем уведомит пользователя, когда файл станет доступным. Если этот аргумент равен Ложь или опущен, уведомление не запрашивается, и любые попытки открыть недоступный файл не удастся. |
Преобразователь | Дополнительно | Вариант | Индекс первого конвертера файлов, который нужно попробовать при открытии файла. Сначала выполняется попытка указанного конвертера файлов; если этот конвертер не распознает файл, пробуются все остальные конвертеры.Индекс преобразователя состоит из номеров строк преобразователей, возвращаемых свойством FileConverters . |
AddToMru | Дополнительно | Вариант | True , чтобы добавить эту книгу в список недавно использованных файлов. Значение по умолчанию - Ложь . |
Местный | Дополнительно | Вариант | True сохраняет файлы на языке Microsoft Excel (включая настройки панели управления). False (по умолчанию) сохраняет файлы на языке Visual Basic для приложений (VBA) (который обычно является американским английским, если только проект VBA, из которого запускается Workbooks.Open, не является старым интернационализированным проектом XL5 / 95 VBA). |
CorruptLoad | Дополнительно | XlCorruptLoad | Может быть одной из следующих констант: xlNormalLoad , xlRepairFile и xlExtractData .Поведение по умолчанию, если значение не указано, - xlNormalLoad , и не предпринимает попыток восстановления при инициировании через OM. |
Возвращаемое значение
Объект Workbook , представляющий открытую книгу.
Замечания
По умолчанию макросы включены при программном открытии файлов. Используйте свойство AutomationSecurity , чтобы установить режим безопасности макросов, используемый при программном открытии файлов.
Вы можете указать одно из следующих значений в параметре UpdateLinks , чтобы определить, обновляются ли внешние ссылки (ссылки) при открытии книги.
Значение | Описание |
---|---|
0 | Внешние ссылки (ссылки) не будут обновляться при открытии книги. |
3 | Внешние ссылки (ссылки) будут обновлены при открытии книги. |
Вы можете указать одно из следующих значений в параметре Format , чтобы определить символ-разделитель для файла.
Значение | Разделитель |
---|---|
1 | Вкладки |
2 | запятые |
3 | Помещения |
4 | точка с запятой |
5 | ничего |
6 | Пользовательский символ (см. Аргумент Delimiter ) |
Пример
В следующем примере кода открывается книга Analysis.xls, а затем запускает макрос Auto_Open.
Рабочие тетради. Открыть "ANALYSIS.XLS" ActiveWorkbook.RunAutoMacros xlAutoOpen
В следующем примере кода выполняется импорт листа из другой книги на новый лист в текущей книге. Лист1 в текущей книге должен содержать путь к импортируемой книге в ячейке D3, имя файла в ячейке D4 и имя рабочего листа в ячейке D5. Импортированный рабочий лист вставляется после Sheet1 в текущую книгу.
Sub ImportWorksheet () 'Этот макрос импортирует файл в эту книгу Листы («Лист1»).Выбрать PathName = Range ("D3"). Значение Имя файла = Диапазон ("D4"). Значение TabName = Range ("D5"). Значение ControlFile = ActiveWorkbook.Name Workbooks.Open Filename: = Путь и имя файла ActiveSheet.Name = TabName Таблицы (TabName). Копировать после: = Рабочие книги (ControlFile) .Sheets (1) Windows (Имя файла). Активировать ActiveWorkbook.Close SaveChanges: = False Windows (ControlFile). Активировать Конец подписки
Поддержка и отзывы
Есть вопросы или отзывы об Office VBA или этой документации? См. Раздел Поддержка и отзывы Office VBA, чтобы узнать, как получить поддержку и оставить отзыв.
.Метод OpenTextFile (Visual Basic для приложений)
- 2 минуты на чтение
В этой статье
Открывает указанный файл и возвращает объект TextStream , который можно использовать для чтения, записи или добавления в файл.
Синтаксис
объект . OpenTextFile ( имя файла , [ iomode , [ создать , [ формат ]]])
Метод OpenTextFile состоит из следующих частей:
Деталь | Описание |
---|---|
объект | Обязательно. Всегда имя FileSystemObject . |
имя файла | Обязательно. Строковое выражение, определяющее открываемый файл. |
режим | Необязательно. Указывает режим ввода / вывода. Может быть одной из трех констант: ForReading , ForWriting или ForAppending . |
создать | Необязательно. Логическое значение , которое указывает, можно ли создать новый файл, если указанное имя файла не существует. Значение Истинно , если создается новый файл; Ложь , если он не создан.По умолчанию Ложь . |
формат | Необязательно. Одно из трех значений Tristate , используемых для обозначения формата открытого файла. Если не указано, файл открывается как ASCII. |
Настройки
Аргумент iomode может иметь любое из следующих значений:
Константа | Значение | Описание |
---|---|---|
Для чтения | 1 | Открыть файл только для чтения.Вы не можете писать в этот файл. |
Для записи | 2 | Открыть файл только для записи. Используйте этот режим для замены существующего файла новыми данными. Вы не можете читать из этого файла. |
Для добавления | 8 | Откройте файл и выполните запись в конец файла. Вы не можете читать из этого файла. |
Аргумент формата может иметь любое из следующих значений:
Константа | Значение | Описание |
---|---|---|
TristateUseDefault | -2 | Открывает файл, используя системные настройки по умолчанию. |
TristateTrue | -1 | Открывает файл в формате Unicode. |
Tristate False | 0 | Открывает файл в формате ASCII. |
Примечания
Следующий код иллюстрирует использование метода OpenTextFile для открытия файла для добавления текста:
Sub OpenTextFileTest Const ForReading = 1, ForWriting = 2, ForAppending = 8 Дим фс, ф Установите fs = CreateObject ("Scripting.FileSystemObject ") Установите f = fs.OpenTextFile ("c: \ testfile.txt", ForAppending, TristateFalse) е. Напишите "Привет, мир!" е. закрыть Конец подписки
См. Также
Поддержка и отзывы
Есть вопросы или отзывы об Office VBA или этой документации? См. Раздел Поддержка и отзывы Office VBA, чтобы узнать, как получить поддержку и оставить отзыв.
.