我知道这是一种常见的查询类型,但在主动搜索后,我尚未找到针对我的特定实例的答案。我也是一个VBA新用户,所以请耐心等待。
我想要将包含实时公式(范围 A1:HW6000)的整个数据表(HISTORY.XLSM 中的 AllDATA 选项卡)从关闭的工作簿导入到活动工作簿中,但仅作为值粘贴到活动工作簿中。更简单地说,想要将关闭的工作簿中的一张工作表作为值(不是实时公式)复制到活动工作表中。
我使用的是 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)