Board logo

標題: 複製貼上圖片的錯誤訊息??? [打印本頁]

作者: color790    時間: 2024-1-11 14:56     標題: 複製貼上圖片的錯誤訊息???

本帖最後由 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':

應用程式或物件定義上的錯誤
---------------------------
確定   說明   
---------------------------
作者: singo1232001    時間: 2024-1-11 15:52

回復 1# color790


    貼完後面加
application.wait now+timevalue("00:00:01")
作者: Andy2483    時間: 2024-1-11 16:02

回復 2# singo1232001


    謝謝前輩,請教前輩這截圖貼上跟時間有什麼關係?
作者: singo1232001    時間: 2024-1-12 00:29

回復 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
作者: color790    時間: 2024-1-12 11:11

回復 2# singo1232001


    沒想到效能也會有影響, 感謝您的強力支援 :)
作者: Andy2483    時間: 2024-1-12 11:49

回復 4# singo1232001


    謝謝前輩指導
後學學習方案如下,請前輩再指導
資料表:
[attach]37283[/attach]

結果表:
[attach]37284[/attach]

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




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)