求一段Excel宏代码

来源:百度知道 编辑:UC知道 时间:2024/09/21 11:09:46
有工作薄A1、A2、A3……等若干,每个工作薄名称各不相同。另有一工作薄B(供打印用)。我打开A1工作薄,作为当前工作薄,录制了一个宏:在sheet1工作表中选中25行,复制到B工作薄的sheet1中,打印,然后切换到A1,继续复制后25行到B1,打印,如此反复多次。但这个宏只能在A1工作薄中使用,因为这样录下的宏中都是A1工作薄的名称,而我需要在A2、A3等工作薄中也要作这样相同的操作,因工作薄名称不同而不能使用,我不想在每个工作薄中都录一个宏。我的要求是,用什么语句定义工作薄,使不管打开那个工作薄,都能作这样的操作。因每次打开一个工作薄,都要在此当前工作薄和B工作薄之间反复切换多次。也就是说,宏中语句中除可以出现B工作薄的名称外,不出现A1、A2……等工作薄的名称,以使宏能通用。请高手解答一下。

在工作薄B中编制一个宏
用循环和dir语句找到要打开的工作薄
用open语句打开工作薄
用循环语句或用复制Copy粘贴Paste语句复制内容
用PrintOut语句打印
用Close关闭已打印完的A工作薄

要通用就不要用指定名称了,可以使用activesheet

activeworkbook thisworkbook 等

另存为宏文件就可以通用了。
后缀为:.xla

还有一方法。录制宏后在打印表格里输入公式引用A2,A3,A4等。如输入=[a1]Sheet1!A1横向纵向复制即可。25行之后输入=[a2]Sheet1!A1复制同上。打印页插入分页符,设置好打印页面,这样每次打印时可同时显示全部待打印文件。试试看。