2011-12-27 37 views
0

我有一個運行以生成PNG(用於HTML文件)的循環。運行時,複製/粘貼不適用於計算機上的其他應用程序。有沒有辦法在Excel中複製/粘貼工作?和/或加快這個代碼? (我在其他地方找到的一些代碼,並感謝幫助。)謝謝。在Excel中運行圖表/ PNG導出循環時複製/粘貼不能在其他應用中工作VB

Sub ToPNG() 
    ' save a range from Excel as a picture 
    Dim r As Range 
    Dim c As ChartObject 

    Const strPath As String = "C:\G\" 
    Application.ScreenUpdating = False 

    Set r = Workbooks("GMon.xlsm").Worksheets("Main").Range("Print_Area") 
    r.CopyPicture xlScreen, xlPicture 

    Set c = ActiveSheet.ChartObjects.Add(0, 0, r.Width + 0, r.Height + 7) 
    c.Chart.Paste 
    c.Chart.Export strPath & "GMonOut.png", "PNG" 
    c.Delete 

    ExitProc: 
    Application.ScreenUpdating = True 
    Set c = Nothing 
    Set r = Nothing 
End Sub 
+0

我很困惑,您希望在此代碼運行時執行其他複製/粘貼操作?難道它不能等待?你沒有說這段代碼運行需要多長時間。 – JimmyPena 2011-12-27 15:21:17

+0

對不起,是的,我試圖複製/粘貼其他應用程序,而excel在後臺運行。這每隔幾秒就會循環一次,所以不能等待。代碼本身需要一秒或2秒。我想這不是加速所需的代碼。它更多的是關於系統資源,如果可以複製/粘貼本地excel操作? – GLG 2011-12-27 15:47:02

+0

我的猜測是否定的,但我相信別人會來和澄清。 – JimmyPena 2011-12-27 16:07:48

回答

1

因爲你的代碼運行「每隔幾秒鐘,」使用剪貼板,它將與剪貼板中的任何其他用戶的干擾。

我看到的唯一選擇是重寫您的代碼,以完全避免使用CopyPaste操作。 (可能通過自動化使用第三方屏幕捕獲實用程序)

相關問題