我想编写一个从第二个excel文件访问日期的excel-vba模块。 我首先想要打开第二个文件到一个vba范围的对象,复制工作表范围到一个vba范围对象,然后关闭第二个文件。VBA Excel - 将范围从第二个文件复制到vba范围对象
数据处理现在只发生在vba范围对象上。
我尝试了以下内容:
Set oMeasuresWorkbook = Workbooks.Open(sMeasuresFileName)
Set oSrcRange = oMeasuresWorkbook.Names("MEASURES").RefersToRange
MsgBox oSrcRange(1, 1)
oMeasuresWorkbook.Close
'problem: after closing the second file (oMeasuresWorkbook) the
oSrcRange Object is gone
MsgBox oSrcRange(1, 1) 'error here as the oSrcRange Object is gone
一切工作正常,直到我关闭第二个文件。看起来,oSrcRange是对原始数据的引用。顺便说一句。同样的行为,如果我通过例如访问范围。
设置oSrcRange = oMeasuresWorkbook.Sheets(1).Range( “A:G”)
那么我将如何 “深拷贝” 的范围内。我尝试range.copy,但semmingly我不知道我会如何初始化范围对象(我不想将数据复制到工作表)。
我希望我让自己清楚和sody可以帮助
thanx!
不太确定我明白,在关闭“oMeasuresWorkbook”之后,您想“复制”oSrcRange?为什么不在你关闭它之前复制它? –
你应该使用数组,你的代码运行速度会快很多。如果你仍然想要复制数据,就像你上面说的那样,你应该使用vector(在你操作第2个文件之后,你需要将第二个excel文件中的数据存储到vector中,然后你可以关闭你的2 excel文件),之后,你可以随心所欲地玩矢量.......但我的推理是使用你需要的数组 – Ionut