2016-04-27 36 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

关键是我正在做这件事的人希望有两个独立的实例运行(这并没有多大意义),因为有太多的公式来保存文件在一个实例中。 –

相关问题