避免工作簿的副作用。打开.csv文件

时间:2017-09-30 11:33:30

标签: excel vba csv

我正在使用vba打开.csv文件

loggedIn

它有效但有副作用:当打开csv文件时,原始.xlsm文件开始重新计算。

有没有办法避免副作用?

PS。我已经将Excel计算设置为手动。

3 个答案:

答案 0 :(得分:4)

避免计算的一种方法是使用另一个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")

答案 1 :(得分:2)

似乎唯一有效的解决方法是将每个工作表的Worksheet.EnableCalculation设置为False。

试试这个

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 :(得分:1)

调用.xlsm文件在打开.csv文件时重新计算,但在打开.xls文件时不重新计算。在打开之前将.csv文件重命名为.xls将阻止重新计算并仍然正常打开文件。

Sub open_csv_file()
    Name "c:\test.csv" As "c:\test.xls"
    Workbooks.Open "c:\test.xls", Format:=2
End Sub

应该添加一些错误处理来处理新文件名已经存在的情况。

相关问题