2010-10-06 80 views
0

我已经编写了一个代码,用于打开包含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 

末次

回答

0

难道是因为你实际上没有复制任何东西,因为开始于RefreshAll的数据库查询正在运行并且在到达Copy时没有返回任何数据?

我看到你在等待2秒钟,但这可能不够长,而单步执行让Excel有更多的时间来获取数据。

不幸的是,当RefreshAll完成时,似乎没有什么特定的事件可以做出反应,这将是实现它的“正确”方式。也许Workbook.SheetChange被解雇了;你可以尝试。

只是在黑暗中拍摄,真的,但复制/粘贴代码本身似乎并不错,而且你没有说你得到任何错误。

0

需要修改粘贴命令以粘贴值。

ActiveSheet.PasteSpecial xlPasteValues