求助弹出EXCEL中“另存为”窗口的宏代码

来源:百度知道 编辑:UC知道 时间:2024/06/20 15:05:27
求实现下列功能的宏(代码):
将sheet1工作表复制到sheet2工作表后,弹出“另存为”的对话框(即“另存为”的窗口),以便输入文件名保存。如何用宏实现此功能啊?请高后指教。
在弹出“另存为”的窗口后,能否在文件名中自动输入当前工作表中B2单元格的内容,(即将B2单元格中的内容作为文件名),然后自动保存此文件并关闭此工作薄。
另:再次补充一下:我原提出弹出窗口,是因为没有想到能自动保存,后来想到如能自动保存就更好了,所以才补充了问题。但我在使用时,又发现了新的问题,请哪位再给解答一下:我通过操作录了一个宏,将A工作薄中的sheet1工作表复制后,打开一个新工作薄B,粘贴到此工作薄中的sheet1中,然后再回到A工作薄中,将sheet2复制到B工作表中的sheet2中,然后才保存B。可问题来了:此宏只能在特定的情况下用一次,即excel程序第一次启动A工作薄复制后,打开的新的B工作薄默认是book1,所以宏代码中也是book1,这一次宏可正确使用。但此次操作后,如不关闭Excel程序,需再次重复这个操作过程的话,却不行了,因第二次复制A工作薄后,再打开新的工作薄是book2,因宏中代码却是book1,此时宏运行出错。故需解决的是,不关闭Excel程序,不管新开的工作薄是book1、book2还是book3..... ,都能正常使用此宏。(因A工作薄是个模板,当往其中输入新的数据后,都要另存为,然后反复使用)。还请高手继续指点迷径。不胜感谢!

那为何还要弹出这个窗口来询问呢?有些多此一举,直接以B2为文件名,另存为就行了。。。

Public Sub aa()
Sheets("sheet1").Activate
Cells.Copy
Sheets("sheet2").Activate
Cells.PasteSpecial
Range("a1").Select
ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Sheets("sheet2").Range("b2")
Application.Quit
End Sub

您好。 VBA上弹出另存为窗口的方法可以用

application.GetSaveAsFilename

注: 这一句的作用即是,弹出"另存为"窗口,同时这个方法的返回值是用户输入的文件名字,其本身并不会真正执行另存为的动作。 如果您需要真正执行保存动作的话还要加句:
thisworkbook.saveas 路径+文件名

(这个文件名是前边一句得到的), 这一句会真正的执行另存为动作的VBA方法

lxlzmh2002 - 中位魔导师 十二级 2009-10-5 00:12
==================================================================
再复本贴:

这当然是可以的. 但我有点背楼主弄糊涂了. 就编写程序而言, 如果用程序来执行保存动作根本没必要弹出个窗口来, 弹出窗口是人类才需要的, 程序想要自动保存可以不要窗口直接进行存盘. 一谈到窗口就是说明需要与用户交互, 需要用户输入的. 按您补充问题中的说法, 弹这个窗口出来保存后自动关闭...要保存就让程序直接执行存盘动作就好了, 还弹窗口出来做什么.. 我被你搞糊涂了...

Sub Macro4()
&