Texto con formato (.prn) está limitado a 240 caracteres por línea en Excel

Seleccione idioma Seleccione idioma
Id. de artículo: 249885 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

En Microsoft Excel, cuando guarda una hoja de cálculo como un texto con formato (delimitado por espacios) (.prn) la archivo, los caracteres más allá el carácter de dos - cientos fortieth No comenzar antes del se ajusta a la línea siguiente.

Nota Si varias filas en la misma hoja contienen texto más allá de 240 caracteres, el texto comienza ajuste en la fila después de la última fila que contiene texto.

Por ejemplo, considere la siguiente hoja:
          Number of
   Cell   Characters
   -----------------

   A1             40
   A2            255
   A3             10
   A4             21
   A5              2
   A6             52
   A7            255
   A8              5
   A9              3
   A20            13
				
el archivo de texto con formato resultante contiene líneas con el siguiente número de caracteres:
   Line Number   Characters
   ------------------------
   1                     40
   2                    240
   3                     10
   4                     21
   5                      2
   6                     52
   7                    240
   8                      5
   9                      3
   10-19                  0
   20                    13
   21                     0
   22                    15
   23-26                  0
   27                    15
				
después de la última línea (en este ejemplo, línea 20), la numeración comienza en 1 para las líneas se ajustan de líneas. En efecto, línea 21 se corresponde con línea 1, línea 22 se corresponde con línea 2 y así sucesivamente.

Causa

Este comportamiento ocurre porque, por diseño, formato texto (delimitado por espacios) (.prn) archivos tienen un límite de 240 caracteres por línea.

Solución

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos. Para crear un archivo de texto delimitado por espacios que supere el 240 caracteres por la limitación de la línea, utilice una macro similar a la siguiente macro de ejemplo.

Nota Antes de ejecutar esta macro, haga lo siguiente:
  • Seleccione las celdas para incluirlos en el archivo de texto.
  • Compruebe que los anchos de columna son lo suficientemente amplio para ver la cadena mayor de cada columna.

    Nota El ancho máximo de una sola columna de Excel es de 255 caracteres con formato de una fuente de ancho fijo.
  • Utilice los comandos del menú estilo para dar formato a la hoja de cálculo para utilizar una fuente de ancho fijo.

    Por ejemplo, correo es una fuente de ancho fijo.
En el siguiente ejemplo de código se puede modificar para exportar datos delimitados con caracteres distintos de un espacio. Debe seleccionar el rango de datos exportarse antes de ejecutar esta macro de ejemplo.
   Sub ExportText()
   
   Dim delimiter As String
   Dim quotes As Integer
   Dim Returned As String
   
      delimiter = " "
   
      quotes = MsgBox("Surround Cell Information with Quotes?", vbYesNo)
   
   ' Call the WriteFile function passing the delimiter and quotes options.
      Returned = WriteFile(delimiter, quotes)
   
   ' Print a message box indicating if the process was completed.
      Select Case Returned
         Case "Canceled"
            MsgBox "The export operation was canceled."
         Case "Exported"
            MsgBox "The information was exported."
      End Select
   
   End Sub
   
   '-------------------------------------------------------------------
   
   Function WriteFile(delimiter As String, quotes As Integer) As String
   
   ' Dimension variables to be used in this function.
   Dim CurFile As String
   Dim SaveFileName
   Dim CellText As String
   Dim RowNum As Integer
   Dim ColNum As Integer
   Dim FNum As Integer
   Dim TotalRows As Double
   Dim TotalCols As Double
   
   
   ' Show Save As dialog box with the .TXT file name as the default.
   ' Test to see what kind of system this macro is being run on.
   If Left(Application.OperatingSystem, 3) = "Win" Then
      SaveFileName = Application.GetSaveAsFilename(CurFile, _
      "Text Delimited (*.txt), *.txt", , "Text Delimited Exporter")
   Else
       SaveFileName = Application.GetSaveAsFilename(CurFile, _
      "TEXT", , "Text Delimited Exporter")
   End If
   
   ' Check to see if Cancel was clicked.
      If SaveFileName = False Then
         WriteFile = "Canceled"
         Exit Function
      End If
   ' Obtain the next free file number.
      FNum = FreeFile()
   
   ' Open the selected file name for data output.
      Open SaveFileName For Output As #FNum
   
   ' Store the total number of rows and columns to variables.
      TotalRows = Selection.Rows.Count
      TotalCols = Selection.Columns.Count
   
   ' Loop through every cell, from left to right and top to bottom.
      For RowNum = 1 To TotalRows
         For ColNum = 1 To TotalCols
            With Selection.Cells(RowNum, ColNum)
            Dim ColWidth as Integer
            ColWidth=Application.RoundUp(.ColumnWidth, 0)
            ' Store the current cells contents to a variable.
            Select Case .HorizontalAlignment
               Case xlRight
                  CellText = Space(Abs(ColWidth - Len(.Text))) & .Text
               Case xlCenter
                  CellText = Space(Abs(ColWidth - Len(.Text))/2) & .Text & _
                             Space(Abs(ColWidth - Len(.Text))/2)
               Case Else
                  CellText = .Text & Space(Abs(ColWidth - Len(.Text)))
            End Select
            End With
   ' Write the contents to the file.
   ' With or without quotation marks around the cell information.
            Select Case quotes
               Case vbYes
                  CellText = Chr(34) & CellText & Chr(34) & delimiter
               Case vbNo
                  CellText = CellText & delimiter
            End Select
            Print #FNum, CellText;
   
   ' Update the status bar with the progress.
            Application.StatusBar = Format((((RowNum - 1) * TotalCols) _
               + ColNum) / (TotalRows * TotalCols), "0%") & " Completed."
   
   ' Loop to the next column.
         Next ColNum
   ' Add a linefeed character at the end of each row.
         If RowNum <> TotalRows Then Print #FNum, ""
   ' Loop to the next row.
      Next RowNum
   
   ' Close the .prn file.
      Close #FNum
   
   ' Reset the status bar.
      Application.StatusBar = False
      WriteFile = "Exported"
   End Function
				
Nota el archivo de salida que esta rutina crea es, por definición, diferente de un archivo de formato Text(*.prn). Por definición, el archivo de texto con formato no puede contener más de 240 caracteres por línea. Además, el archivo de texto con formato también contiene información de fuente de impresora. Esta macro de ejemplo no. Esta solución está diseñada para ofrecer flexibilidad al exportar a archivos de texto.

Propiedades

Id. de artículo: 249885 - Última revisión: sábado, 27 de enero de 2007 - Versión: 7.2
La información de este artículo se refiere a:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
Palabras clave: 
kbmt kbcode kbprb kbprogramming kbusage KB249885 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 249885

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com