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