用于重命名的VBA代码&;拯救

用于重命名的VBA代码&;拯救,vba,excel,Vba,Excel,我在一家销售办公室工作,目前我们使用所有销售报价的硬拷贝,并按字母顺序归档。我已经制作了一个excel版的报价文件,希望能让一切都更有效率。不幸的是,我们对办公室里的每个人的计算机技能都没有信心,因此需要尽可能地让它对用户友好 我需要通过vba使用命令按钮,将excel工作表保存到网络上的指定路径,并将副本重命名为指定范围单元格的单元格内容(如果可能) 基本上,对于每个报价,如果可能的话,我希望有一份保存为“Doe.John.06.01.2013”的表格副本。直到昨天我才知道vba的存在,虽然我

我在一家销售办公室工作,目前我们使用所有销售报价的硬拷贝,并按字母顺序归档。我已经制作了一个excel版的报价文件,希望能让一切都更有效率。不幸的是,我们对办公室里的每个人的计算机技能都没有信心,因此需要尽可能地让它对用户友好

我需要通过vba使用命令按钮,将excel工作表保存到网络上的指定路径,并将副本重命名为指定范围单元格的单元格内容(如果可能)


基本上,对于每个报价,如果可能的话,我希望有一份保存为“Doe.John.06.01.2013”的表格副本。直到昨天我才知道vba的存在,虽然我觉得它很神奇,它让我内心的书呆子高兴得跳了起来,但我是一个代码呆子!。。。我已经在网上搜索过了,但找不到任何我需要的东西。如果这里有人能帮助我,我将永远感激:)

我建议您熟悉Excel中的宏记录器。基本上,它允许您将操作记录到VBA中。这是学习使用什么代码来完成某些操作的好方法。例如,我刚刚录制了以下内容:

ActiveWorkbook.SaveAs Filename:="C:\Users\Nemmy\Documents\Book2.xlsx", _
    FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
只需点击一下按钮就可以运行代码,这是一件相当简单的事情。您可以使用如下方式修改它,从几个单元格值中获取文件名:

    Dim sPath as string
    sPath=ActiveSheet.Range("A1").Value & ActiveSheet.Range("A2").Value & ".xlsx"
    ActiveWorkbook.SaveAs Filename:=sPath, _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

A1单元格将包含报价目录的基本路径,A2单元格将包含文件名。

ActiveWorkbook.SaveAs good crap我不知道有录音机:)很高兴我现在能吻你!因此,我记录了另存为的代码:Sub SAVEQUOTE()''SAVEQUOTE Macro'将QUOTE保存到文件夹''键盘快捷键:Ctrl+Shift+Q'ChDir“C:\Users\Buckleys\Desktop\Deenas”ActiveWorkbook.SaveAs文件名:=\uC:\Users\Buckleys\Desktop\Deena\Republic Services\NEW RESI SPREADSHEET.xlsm”,FileFormat:=xlOpenXMLWorkbookMacroEnabled,CreateBackup:=False End Sub这太棒了,但是有没有办法让它从工作表中的一系列单元格中提取新文件名?我想如果你吻我,我的女朋友可能会不喜欢:P阅读文章的第二部分。其中有一行代码可以根据两个Excel单元格中的值构造文件路径和名称。@nemmy一句警告:虽然宏记录器是开始学习
VBA
的好工具,但它确实有缺点。它对于发现Excel对象模型的功能非常有用(例如
SaveAs
!),但通常会生成非常糟糕、效率低下的代码(例如满是
Select
s)。我的建议是:使用它的好处,但也要学会“正确”地编码。@Excel recorder产生的chrisneilsen VBA通常是许多人在编码方面的第一次体验。这是一个很好的方式,让他们知道可以做什么,并希望它为他们打开一个更广阔的世界。我认为它产生的代码的缺点远远超过了它给新的编码者带来的价值。我们只需要看到OP的反应就可以看到它的值。但是是的,它产生的代码不是很好。