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