Estoy usando vba para abrir un archivo .csv

Sub open_csv_file()        
    Workbooks.Open("c:\test.csv")
    ActiveWorkbook.Close    
End Sub

Funciona, pero con un efecto secundario: cuando se abre el archivo csv, el archivo .xlsm original comienza a recalcularse.

¿Hay alguna manera de evitar el efecto secundario?

PD. Ya configuré el cálculo de Excel como Manual.

1
athos 30 sep. 2017 a las 14:33

2 respuestas

La mejor respuesta

Una forma de evitar el cálculo es abrir el archivo con otra instancia de Excel:

Dim app As Excel.Application
Dim csv As Workbook

Set app = New Excel.Application
app.Visible = True

Set csv = app.Workbooks.Open("c:\test.csv")
4
Florent B. 4 oct. 2017 a las 01:32

La única solución que parece estar funcionando es establecer Worksheet.EnableCalculation en False para cada hoja de trabajo.

Prueba esto

Sub open_csv_file()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.EnableCalculation = False
    Next ws
    Workbooks.Open ("c:\users\test\desktop\test.csv")
    ActiveWorkbook.Close
End Sub
2
Imran Malek 10 oct. 2017 a las 18:24