我的VBA Excel程序没什么问题。我正在尝试使用Application.Workbooks.Open()函数打开外部工作簿。外部工作簿的文件名来自CommonDialog。当我选择带有对话框的文件并让程序加载工作簿时,出于某种原因,Excel首先加载该文件的某种副本,然后加载我想要的文件。这导致了Excel开始抱怨没有资源的问题。我试图用简单的字符串给外部工作簿的文件名,当以这种方式使用时,Excel只加载我想要加载的文件。
以下是代码:
CommonDialog1.Filter = "Excel-taulukot (*.xlsx)|*.xlsx"
CommonDialog1.ShowOpen
Dim externalWorkbook As Excel.Workbook
'This one seems to load copy and the file'
Set externalWorkbook = Application.Workbooks.Open(CommonDialog1.Filename, , True)
'This one works, but I need it to be little less hardcoded'
'Set externalWorkbook = Application.Workbooks.Open("<pathtofile>", , True)'
Set externalSheet = externalWorkbook.Worksheets(1)
答案 0 :(得分:0)
xlsx格式是一种压缩格式,您所看到的可能是对临时文件进行解压缩以进行加载。你确定当你对文件名进行硬编码时,你在调试中一步一步看不到它做同样的事情吗?
答案 1 :(得分:0)
我已经解决了这个问题。出于某种原因,在对话框屏幕上禁用预览窗口会停止Excel以加载文件的副本。现在它的工作正是我想要的。