Excel rompió la importación de datos existentes, ¿cómo volver a antes?

Excel rompió la importación de datos existentes, ¿cómo volver a antes?

Durante años tuve un sistema semiautomático para generar listas de materiales (listas de materiales) para diseños eléctricos. A través de un script en mi programa CAD, que ejecuta un código externo que escribí hace mucho tiempo, obtengo un archivo de valores separados por tabulaciones (TSV). Este proceso también copia un archivo XLS de plantilla. Este archivo define el formato para columnas específicas, que el archivo TSV no puede contener.

Abriría el archivo XLS de plantilla en Excel, luego haría algo como DATOS, DESDE ARCHIVO DE TEXTO, le daría el nombre del archivo y presionaría regresar 5 veces para tomar un montón de valores predeterminados. Los datos del archivo TSV aparecerían en la hoja de cálculo, con el formato del archivo de plantilla. Algunas celdas contenían ecuaciones en lugar de datos directos. Todo esto funcionaría según lo previsto.

Este procedimiento funcionó muy bien durante los últimos 15 años, hasta ahora. Aparentemente, Microsoft actualizó Excel en mi computadora portátil Win10 en las últimas semanas y ahora todo está roto. De lo que obtienesDATOS > DEL TEXTO > nombre de archivoes completamente diferente. Ahora faltan todos los controles de antes y ahora adivina mal. No encuentro una manera obvia de habilitar algún modo "heredado", ni veo una manera de brindarle más detalles. Simplemente hace lo que hace, que es diferente a antes, y rompe mi proceso.

Parece que hay dos incompatibilidades que realmente están arruinando las cosas:

  1. Cuando la primera celda de la primera fila contiene un número, ahora agrega automáticamente su propia fila de título. Estaba usando la celda A1 como el número total de tableros a construir, por lo que se calcularon varias cantidades a partir de ese número. Las celdas restantes en la primera fila son los títulos de mis columnas. Estoy de acuerdo con que la primera columna tenga un número en la parte superior. Ése debería ser asunto mío.

    Al agregar su propia fila de título, todas mis ecuaciones están desviadas en uno verticalmente. ¡Qué lío!

  2. La importación de ecuaciones está rota. Cuando obtiene una celda que contiene "=" como primer carácter, agrega un espacio delante de "=" y, como resultado, trata el resto como una cadena. Si edito manualmente el espacio en la hoja de cálculo, obtengo la ecuación deseada. Hay cientos de celdas de este tipo, por lo que arreglarlas todas manualmente no es una opción.

¿Cómo vuelvo a la operación anterior? No soy un genio de Excel y realmente no quiero serlo. Quiero continuar generando mis listas de materiales.

Como experimento, convertí manualmente algunas líneas del archivo TSV a un archivo CSV. Importar eso resulta en los mismos problemas. Con solo escribir el nombre del archivo CSV aparece Excel con los datos cargados correctamente, pero, por supuesto, no sabe acerca del formato de mi columna de esa manera.

No debería ser difícil encontrar el programa que genera el archivo TSV debajo de una gran capa de polvo en algún lugar y realizar los cambios necesarios. Por ejemplo, si necesito absolutamente un archivo CSV ahora, puedo vivir con él. Creo que creé un archivo TSV hace mucho tiempo para evitar caracteres especiales en cadenas de texto en algunas de las celdas. Nuevamente, todo esto funcionó durante años hasta hace unas semanas.

Respuesta1

Esto le permitirá seleccionar y abrir un archivo para importar, abre un nuevo libro y pega solo los valores, lo modifiqué ligeramente desdeaquí.

Sub Makro1()

Dim fullpath As String

' Makro1 Makro
' Makro indspillet 13-07-2013 af Eric Bentzen
'

'
'Display a Dialog Box that allows to select a single file.
'The path for the file picked will be stored in fullpath variable
  With Application.FileDialog(msoFileDialogFilePicker)
        'Makes sure the user can select only one file
        .AllowMultiSelect = False
        'Filter to just the following types of files to narrow down selection options
        .Filters.Add "Text Files", "*.TSV; *.TXT; *.CSV , 1"
        'Show the dialog box
        .Show
        
        'Store in fullpath variable
        fullpath = .SelectedItems.Item(1)
        
    End With
    
On Error GoTo EndSub

Workbooks.OpenText Filename:=fullpath, _
   Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, _
   TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
   Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
   Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
   Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
   Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), _
   Array(11, 1), Array(12, 1), Array(13, 1)), _
   TrailingMinusNumbers:=True
   
EndSub:

End Sub

Parece que solo tendrá 13 líneas, pero podría modificarse para adaptarlo.

información relacionada