EXCEL求VBA代码,点击按钮实现从未打开的EXCEL表sheet1文件复制内容到当前已打开的EXCEL表sheet1

把1个未打开状态的excel文件表sheet1中所有存在的内容(范围:A列到O列)复制到当前已打开的excel表sheet1(范围:A列到O列)同时要求复制格式,特别是当源表有筛选状态时一定要先解除筛选才可以复制。
求高手解答最好能提供excel范例文件。
按钮可以放在sheet2

附件是例子,自己根据情况自行修改

追问

我测试了一下,代码有问题啊,先是报错,然后直接死机。

追答

修改如图蓝色代码

我现在是不提示也不出错,如果你出错我想是不是版本问题

你是不是用WPS???

我用的是2003


可以试试把close里面的false去掉看看

追问

你发的范例我修改后可以实现当前页的复制,移植到我要用到的文件出状况了。

有些区域是合并的,出现了上面的提示。

追答

蓝色代码上面的sheet1 就是表格
可以改成
sheets("表格名字").

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-09-10

一般代码这样写:

sub xxx()
    Workbooks.Open Filename:="你要打开的文件名字,例如c:\a.xls"
    sheet1.[a1].AutoFilter
    sheet1.[a:o].copy ThisWorkbook.sheet1.[a:o]
    ActiveWorkbook.Close
end sub

程序三个语句,第一个打开文件,第二个取消筛选(如果原来没有筛选会加上筛选,但这并不影响后面的复制),第三个语句完成复制,第四个关闭文件

追问

能否来个范例呢,两个文件设置在同一目录下,实际使用会出现不少错误的。
虽然我不是很懂VBA,但是你的代码里没有用End(xlUp) 来进行对源行数进行判断,而是直接把A:O列的内容直接复制过去会不会对内存资源的浪费啊?

追答

上面的就是范例,有什么地方需要更详细的吗?
无需使用end,整列复制不会浪费内存。

第2个回答  2014-09-10
你自己现在代码写到怎样的程度了?追问

我的目的是要获取未打开的excel中的数据,每次自己打开多麻烦。

追答

试下getobject

追问

看你这么牛B的网名,干嘛不来个EXCEL文件让我看看啊,我不懂VBA才来求助的。

追答

亲,我不牛B啊,你不懂VBA,我发给你了你也是不懂啊,所以我第一句才问你代码写到什么程度了。要说发文件的话下面一大堆的回答都是文件呢。

追问

你这回答等于没回,无语!我懂不懂自己知道,你怎么知道我看不懂呢?

第3个回答  2014-09-10
代码由点长
相似回答