2012-02-21 107 views
0
Dim ws As Worksheet, wbREF As Workbook 
Set ws = ActiveSheet 
Set wbREF = Workbooks.Open("ALSP.xls")  'you may want to put the full path here 

Range("B7:L61").Copy ws.Range("N7")   'copy to original sheet 
wbREF.Close False 

Set ws = ActiveSheet 
Set wbREF = Workbooks.Open("FLSP.xls")  'you may want to put the full path here 

Range("B7:L61").Copy ws.Range("Z7")   'copy to original sheet 
wbREF.Close False 

Set ws = ActiveSheet 
Set wbREF = Workbooks.Open("GASP.xls")  'you may want to put the full path here 

Range("B7:L61").Copy ws.Range("AL7")   'copy to original sheet 
wbREF.Close False 

我現在用的這個宏偉大的工程。我的問題是關於其中有公式的工作手冊「GASP」。這marco不復制我需要的價值。任何人都可以提出解決辦法。由於Excel 2010中粘貼值

+0

do這些值與您在工作表中看到的不符?他們有計算嗎?目標上顯示了什麼?你想複製公式或結果嗎? – datatoo 2012-02-21 20:27:25

回答

3

首先,你只有真正需要這一條線曾經在宏的頂部:

Set ws = ActiveSheet 

接下來,只複製值,則需要切換到雙行復制/粘貼命令:

Set wbREF = Workbooks.Open("GASP.xls")  'you may want to put the full path here 

Range("B7:L61").Copy 
ws.Range("AL7").PasteSpecial xlPasteValues 'copy to original sheet 
wbREF.Close False 
+0

這是否適合你?你打算關閉這個線程嗎? – 2012-02-22 14:44:46

+0

+1。這次真是萬分感謝! – Taptronic 2012-06-13 15:05:31

1

我想你想要做的是有宏觀的值複製,而不僅僅是公式。檢查下面的代碼

Set ws = ActiveSheet 
Set wbREF = Workbooks.Open("GASP.xls") 

Range("B7:L61").Copy 
ws.Range("AL7").PasteSpecial xlPasteValues 
wbREF.Close False 

還要確保excel已啓用自動計算。您可以在「公式」功能區中進行檢查。最後要注意的一點是,你需要小心的限定你的參考資料。無論何時調用「範圍」功能,指定包含該範圍的工作簿和工作表都是明智之舉。就像這樣:

ThisWorkbook.Sheets("Sheet1").Range("Al7") 

With ThisWorkbook.Sheets("Sheet1") 
    Set rng = .Range("Al7") 
End With 
+0

+1完全符合工作表/範圍的路徑的好建議。但你錯過了「Range(」B7:L61「),複製」。爲工作表定義第二個變量,然後將其設置爲「GASP.xls」中的工作表,然後將其添加到Range(「B7:L61」)之前。 :) – 2012-02-22 01:58:50

+0

感謝大家的迴應。工作很好。 – 2012-02-22 11:32:01