VBA复制并粘贴SQL数据作为Excel电子表格中的值不粘贴
问题描述:
我已经编写了一个代码,用于打开包含SQL数据连接的工作表,然后刷新数据,复制值并尝试将该信息粘贴到原始电子表格。VBA复制并粘贴SQL数据作为Excel电子表格中的值不粘贴
数据不糊但是,如果我手动单步执行代码击中F8数据膏 - 我想不通这是为什么 -
,如果这是一个简单的问题我的道歉,我新VBA,我四处打听我的办公室,谷歌搜索 - 仍然无法找到答案 - 这里是代码
子的GetData() “ ”的GetData宏 “ ”快捷键:Ctrl + A ' '使馆藏报告标签可见并清除内容
Sheets("Holdings Report").Visible = True
Sheets("Holdings Report").Activate
Range("A2:J65536").Select
Selection.ClearContents
'开原持有的报告,刷新数据,复制数据
Workbooks.Open "\\hcc-fileprint\sys\Share\Institutional Group\Rebalancing\HCNet Update.xlsm"
Sheets("Sheet1").Activate
Application.Wait Now + TimeValue("00:00:02")
ActiveWorkbook.RefreshAll
Application.Wait Now + TimeValue("00:00:02")
ActiveWorkbook.RefreshAll
Range("A2:J65536").Select
Selection.Copy
' 激活再平衡的电子表格粘贴值,然后隐藏标签
ThisWorkbook.Activate
Sheets("Holdings Report").Activate
Range("A2").Select
ActiveSheet.paste
末次
答
难道是因为你实际上没有复制任何东西,因为开始于RefreshAll的数据库查询正在运行并且在到达Copy时没有返回任何数据?
我看到你在等待2秒钟,但这可能不够长,而单步执行让Excel有更多的时间来获取数据。
不幸的是,当RefreshAll完成时,似乎没有什么特定的事件可以做出反应,这将是实现它的“正确”方式。也许Workbook.SheetChange被解雇了;你可以尝试。
只是在黑暗中拍摄,真的,但复制/粘贴代码本身似乎并不错,而且你没有说你得到任何错误。
答
需要修改粘贴命令以粘贴值。
ActiveSheet.PasteSpecial xlPasteValues