Excel 2010粘贴值

时间:2012-02-21 19:47:17

标签: excel vba excel-vba ms-office

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不会复制我需要的值。任何人都可以提出建议。感谢

2 个答案:

答案 0 :(得分:3)

首先,你只需要在宏的顶部一次只需要这一行:

Set ws = ActiveSheet

接下来,要仅复制VALUES,您需要切换到两行复制/粘贴命令:

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

答案 1 :(得分: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