2016-04-27 35 views
0

我正在嘗試創建一個將選定範圍從excel的一個實例粘貼到excel的第二個實例的宏。將表格粘貼到不同的excel實例

現在我面臨2個問題。

第一個問題是我無法自動將範圍粘貼到與選擇範圍相同的地址上(儘管在不同的工作表上)。

第二個問題是我設法粘貼值,但如果我真的嘗試複製表格,它會被粘貼爲圖片。

我也不確定我的代碼是否非常高效,這些只是我從互聯網上覆制過來的點點滴滴。

在此先感謝您的幫助。

Private Sub CommandButton1_Click() 
Dim xlApp As Excel.Application 
Dim xlBook As Excel.Workbook 
Dim ws As Workbook 
Dim rng As Range, dst As Range 
Dim vals() As Variant 
Dim xlSht 

Set ws = ThisWorkbook 

'select second file 
fpath = Application.GetOpenFilename(, , Title:="Please select a file") 
If fpath = False Then 
' They pressed Cancel 

    MsgBox "Stopping because you did not select a file" 

    Exit Sub 

Else 

    Set xlApp = New Excel.Application 
    Set xlBook = xlApp.Workbooks.Open(fpath) 
    xlApp.Visible = True 

End If 
ws.Sheets(2).Select 


Set rng = Application.InputBox(Prompt:="Please Select Range",   Title:="Range Select", Type:=8) 

Set xlSht = xlApp.Sheets(1) 

xlSht.Range("A1").Select 

Set dst = xlApp.InputBox(Prompt:="Please Select Range", Title:="Range  
Select", Type:=8) 




rng.Copy 
dst.PasteSpecial xlPasteAll 

'vals = rng 
'dst.Value = vals 

End Sub 

回答

0

看來,Excel不能粘貼到另一個實例直接,而是它使用Windows粘貼功能。我想這就是爲什麼你的PasteSpecial貼上你的範圍的照片。如果你使用PasteSpecial xlPasteValues這似乎工作,但更好的辦法是在同一個實例(消除xlApp)打開第二個工作簿:

'... 
fpath = Application.GetOpenFilename(, , Title:="Please select a file") 
'... 
Set xlBook = Application.Workbooks.Open(fpath) 

ws.activate 'wb might be a better name 
set rng = Application.InputBox(Prompt:="Please Select Range", Title:="Range Select", Type:=8) 

Set xlSht = xlBook.Sheets(1) 
xlSht.Activate 

set dst = Application.InputBox(Prompt:="Please Select Range", Title:="Range Select", Type:=8) 

rng.Copy 
dst.PasteSpecial xlPasteAll 

如果要粘貼到同一個地方rng你可以使用

Set dst = xlSht.Cells(rng.Row,rng.Column) 

但也有可能是一個更好的方式

+0

嗨,問題是,如果我用xlpastevalues,我所有的公式都將丟失。有沒有xlpastesomething,這也保持公式? –

+0

不適用於粘貼到另一個excel實例。顯然'xlPasteFormulas'也貼上一張圖片。你嘗試了我推薦的方法嗎?當您在同一個實例中打開第二個工作簿時,公式將被複制。 – arcadeprecinct

+0

關鍵是我正在做這件事的人希望有兩個獨立的實例運行(這並沒有多大意義),因爲有太多的公式來保存文件在一個實例中。 –

相關問題