Excel VBA将从已closures工作簿中的值复制并粘贴到活动工作簿Mac OS X中

我知道这是一种常见的查询types,但是在主动search之后,我还没有find答案。 我也是一个新的VBA用户,请耐心等待。

我想将包含活动公式(范围A1:HW6000)的整个工作表(从HISTORY.XLSM中的AllDATA选项卡)从已closures的工作簿导入到活动工作簿中,但仅作为值粘贴到活动工作簿中。 更简单地说,想从closures的工作簿中复制一个表作为值(不是活的formuale)到活动工作表中。

我在Mac OS X上。

这是我一直在使用的代码(从活动工作簿运行代码)。

Sub GetRange() With Range("A1:HW6000") .Formula = "='C:\[HISTORY.xlsm]ALLDATA'!A1" .Value = .Value End With End Sub 

此代码似乎导入格式,但不是实际粘贴到我的活动工作簿中的值。

有任何想法吗?

你应该这样做一个真正的复制粘贴

 Sub ImportData() Dim App As New Excel.Application 'create a new (hidden) Excel ' remember active sheet Dim wsActive As Worksheet Set wsActive = ThisWorkbook.ActiveSheet ' open the import workbook in new Excel (as read only) Dim wbImport As Workbook Set wbImport = App.Workbooks.Open(Filename:="C:\History.xlsm", UpdateLinks:=True, ReadOnly:=True) 'copy the data of the import sheet wbImport.Worksheets("AllDATA").Range("A1:HW6000").Copy wsActive.Range("A1").PasteSpecial Paste:=xlPasteFormats 'paste formats wsActive.Range("A1").PasteSpecial Paste:=xlPasteValues 'paste values App.CutCopyMode = False 'clear clipboard (prevents asking when wb is closed) wbImport.Close SaveChanges:=False 'close wb without saving App.Quit 'quit the hidden Excel End Sub