Поделиться через


Процедура экспорта текстового файла с разделителями-запятыми и кавычками в Excel

Сводка

В Microsoft Excel нет команды меню для автоматического экспорта данных в текстовый файл, чтобы текстовый файл экспортировался как с кавычками, так и с запятыми в качестве разделителей. Например, нет команды для автоматического создания текстового файла, содержащего следующие данные:

"Text1", "Text2", "Text3"

Однако эту функцию можно создать в Excel с помощью процедуры Microsoft Visual Basic для приложений.

Дополнительная информация

Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Это относится, в частности, к подразумеваемым гарантиям товарного состояния или пригодности для конкретной цели. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Инженеры службы поддержки Майкрософт могут помочь объяснить функциональные возможности конкретной процедуры, но они не будут изменять эти примеры, чтобы предоставить дополнительные функциональные возможности или создать процедуры в соответствии с вашими конкретными требованиями.

Оператор Print # можно использовать в процедуре Visual Basic, аналогичной приведенной ниже, для экспорта текстового файла с кавычками и запятыми в качестве разделителей. Чтобы процедура правильно функционировала, выделите ячейки, содержащие данные, перед ее выполнением.

Прежде чем работать со следующим примером кода, выполните следующие действия:

  1. Откройте новую книгу.

  2. В Microsoft Office Excel 2003 или Microsoft Excel 2002 в меню Сервис наведите указатель мыши на макрос, а затем выберите редактор Visual Basic. Кроме того, нажмите клавиши ALT+F11.

    В Microsoft Office Excel 2007 откройте вкладку Разработчик , а затем выберите Visual Basic в группе Код . Кроме того, нажмите клавиши ALT+F11.

    Примечание.

    Чтобы отобразить вкладку Разработчик на ленте, нажмите кнопку Microsoft Office, выберите пункт Параметры Excel, выберите категориюПопулярные , установите флажок Показать вкладку Разработчик на ленте , а затем нажмите кнопку ОК.

  3. В редакторе Visual Basic щелкните Модуль в меню Вставка.

  4. Введите или вставьте следующий пример кода на лист модуля.

    Sub QuoteCommaExport()
       ' Dimension all variables.
       Dim DestFile As String
       Dim FileNum As Integer
       Dim ColumnCount As Long
       Dim RowCount As Long
    
       ' Prompt user for destination file name.
       DestFile = InputBox("Enter the destination filename" _
          & Chr(10) & "(with complete path):", "Quote-Comma Exporter")
    
       ' Obtain next free file handle number.
       FileNum = FreeFile()
    
      ' Turn error checking off.
       On Error Resume Next
    
       ' Attempt to open destination file for output.
       Open DestFile For Output As #FileNum
    
       ' If an error occurs report it and end.
       If Err <> 0 Then
          MsgBox "Cannot open filename " & DestFile
          End
       End If
    
       ' Turn error checking on.
       On Error GoTo 0
    
       ' Loop for each row in selection.
       For RowCount = 1 To Selection.Rows.Count
    
       ' Loop for each column in selection.
          For ColumnCount = 1 To Selection.Columns.Count
    
            ' Write current cell's text to file with quotation marks.
             Print #FileNum, """" & Selection.Cells(RowCount, _
                ColumnCount).Text & """";
    
             ' Check if cell is in last column.
             If ColumnCount = Selection.Columns.Count Then
                ' If so, then write a blank line.
                Print #FileNum,
             Else
                ' Otherwise, write a comma.
                Print #FileNum, ",";
             End If
          ' Start next iteration of ColumnCount loop.
          Next ColumnCount
       ' Start next iteration of RowCount loop.
       Next RowCount
    
       ' Close destination file.
       Close #FileNum
    End Sub
    
  5. Перед выполнением макроса выберите данные, которые нужно экспортировать, а затем запустите подпрограмму QuoteCommaExport.