Dela via


Procedur för att exportera en textfil med både kommatecken- och citatavgränsare i Excel

Sammanfattning

Microsoft Excel har inte något menykommando för att automatiskt exportera data till en textfil så att textfilen exporteras med både citattecken och kommatecken som avgränsare. Det finns till exempel inget kommando för att automatiskt skapa en textfil som innehåller följande data:

"Text1",Text2",Text3"

Du kan dock skapa den här funktionen i Excel med hjälp av en Microsoft Visual Basic for Applications-procedur.

Mer information

Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa till att förklara funktionerna i en viss procedur, men de ändrar inte de här exemplen för att tillhandahålla ytterligare funktioner eller konstruktionsprocedurer för att uppfylla dina specifika krav.

Du kan använda instruktionen Skriv ut # i en Visual Basic-procedur som liknar följande för att exportera en textfil med både citattecken och kommatecken som avgränsare. Markera cellerna som innehåller dina data innan du kör den för att proceduren ska fungera korrekt.

Innan du arbetar med följande exempelkod följer du dessa steg:

  1. Öppna en ny arbetsbok.

  2. I Microsoft Office Excel 2003 eller Microsoft Excel 2002 pekar du på Makro på verktygsmenyn och klickar sedan på Visual Basic Editor. Du kan också trycka på ALT+F11.

    I Microsoft Office Excel 2007 klickar du på fliken Utvecklare och sedan på Visual Basic i gruppen Kod . Du kan också trycka på ALT + F11.

    Obs!

    Om du vill visa fliken Utvecklare i menyfliksområdet klickar du på Microsoft Office-knappen, klickar på Excel-alternativ, klickar på kategorinPopulär , väljer fliken Visa utvecklare i menyfliksområdet och klickar sedan på OK.

  3. I Visual Basic-redigeraren klickar du på Modul på Infoga-menyn.

  4. Skriv eller klistra in följande exempelkod i modulbladet.

    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. Innan du kör makrot väljer du de data som du vill exportera och kör sedan underrutinen QuoteCommaExport.