2010-10-06 38 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