Excel 2010粘贴值

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 

我现在正在使用这个伟大的macros。 我的问题是工作手册“GASP”里面有公式。 这marco不复制我需要的价值。 任何人都可以提出解决办法。 谢谢

首先,你只需要在macros的顶部有一行:

 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 

我想你想要做的是macros复制的价值,而不仅仅是公式。 检查下面的代码

 Set ws = ActiveSheet Set wbREF = Workbooks.Open("GASP.xls") Range("B7:L61").Copy ws.Range("AL7").PasteSpecial xlPasteValues wbREF.Close False 

还要确保excel已打开自动计算。 您可以在“公式”function区中进行检查。 最后要注意的一点是,你需要小心你的参考资格。 无论何时调用“范围”函数,指定包含该范围的工作簿和工作表都是明智之举。 喜欢这个:

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

要么

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