【发布时间】:2018-12-11 14:24:27
【问题描述】:
我正在尝试从每月更新的 excel 工作簿中获取数据,并且文件的名称根据日期更改 - 我有一个使用今天功能的说明页面,它给了我月份(这是单元格我在“月”中引用)
问题是,我打开的文件非常非常大,所以这需要 5 多分钟才能启动 excel 并复制数据。无论如何修改我的代码以在不打开excel文件的情况下获取数据?
这是我目前的代码 -
Sub UploadData()
Dim Model As Workbook
Dim Q As Workbook
Dim rngFX As Range
Dim Month As String
Set Model = ActiveWorkbook
Set Q = Workbooks.Open(Filename:=Sheets("Instructions").Range("$C$29").Value)
Month = ("C" & (Model.Sheets("Instructions").Range("$C$23")))
With Q
With .Sheets(Month & " Summary")
Set rngFX = .Range("A61:R66")
rngFX.Copy Destination:=Model.Sheets("FOREX Forecast").Range("A3")
End With
End With
Q.Close savechanges:=False
With Model.Sheets("FOREX Forecast").UsedRange
.Value = .Value
End With
End Sub
编辑:我添加了我遇到的错误的图片 - 当我按下调试时,它会突出显示这一行:
Rs.Open strSQL, strConn
【问题讨论】:
-
如果您的 Excel 文件具有固定的类似表的结构,那么您可以通过 ADODB 连接访问它。例如,检查这个问题:stackoverflow.com/questions/18144838/…
-
您不能在不打开文件的情况下复制或粘贴,因为这两个操作都是
Workbook对象的子方法。您需要使用另一种方法,例如 ADODB :)