返回列表 上一主題 發帖

複製貼上圖片的錯誤訊息???

複製貼上圖片的錯誤訊息???

本帖最後由 color790 於 2024-1-11 14:59 編輯

為什麼有時候執行以下2行會出現下面的錯誤訊息, 有時候不會, 另外請問有其他方式可直接以xy座標方式貼到指定位置嗎?(像插入文字方塊指定xy位置)
Sub test()
Worksheets("工作表1").Range(Worksheets("工作表1").Cells(1, 1), Worksheets("工作表1").Cells(2, 12)).Copy
Worksheets("工作表2").Pictures.Paste
End Sub


---------------------------
Microsoft Visual Basic for Applications
---------------------------
執行階段錯誤 '1004':

應用程式或物件定義上的錯誤
---------------------------
確定   說明   
---------------------------
初學者color

回復 1# color790


    貼完後面加
application.wait now+timevalue("00:00:01")

TOP

回復 2# singo1232001


    謝謝前輩,請教前輩這截圖貼上跟時間有什麼關係?
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 1# color790

例如貼到A1:C3
set 儲存格範圍 = range("a1:c3")
sheets("工作表").Shapes.AddPicture 完整圖片路徑, False, True, 儲存格範圍.Left, 儲存格範圍.Top, 儲存格範圍.Width, 儲存格範圍.Height


另外補充
若用框線框選的範圍
可用if 判斷
rng.Borders(xlEdgeLeft).LineStyle=1
rng.Borders(xlEdgeTop).LineStyle=1
rng.Borders(xlEdgeRight).LineStyle=1
rng.Borders(xlEdgeBottom).LineStyle=1
搭配迴圈與offset 找出框線的左上右下
搭配放圖的左,上,寬,長 (用減法求寬長)
框線多大 圖就能自適應  不需要合併儲存格


關於用wait 也不一定有效  可依據電腦效能調整等待時長
或許放圖片是異步處理 或者 等待任務堆來不及跟上 造成VB單線程卡住
當然也不排除 是否還有其他小bug

TOP

回復 2# singo1232001


    沒想到效能也會有影響, 感謝您的強力支援 :)
初學者color

TOP

回復 4# singo1232001


    謝謝前輩指導
後學學習方案如下,請前輩再指導
資料表:


結果表:


Option Explicit
Sub test()
Dim xR As Range
Set xR = [工作表2!B2]: Application.Goto xR
With Sheets("工作表1"): Range(.[A1], .Cells(2, 12)).CopyPicture: End With
Sheets("工作表2").Paste: xR.Activate: Application.Wait Now + TimeValue("00:00:01")
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題