哪里确切地存储VBA

我们正在从我们的领域办事处接收一些日常的Excel文件,我必须使用一些VBA来清理和重新格式化大约110列和500行。 正如你所看到的,我有一大堆的VBA,我需要把它们保存为macros,我们可以通过运行macros来清理所有新的接收工作表,最后将编辑后的工作表保存为新工作表从UserForm Combobox项获取名称。

现在我的问题是在哪里我应该存储的VBA片段我的意思是当我打开Visual Basic面板我有这三个选项(据我所知)
A-:从Microsoft Excel对象运行代码:Sheets1(Sheet1)
B-:从插入的模块运行代码
C-:从用户表单运行代码

在这里输入图像说明

如果我应该使用选项A或B,我可以调用UserForm来保存工作表?

谢谢

我build议你使用模块(选项B)

选项C与选项B一起,不解释,你可以在选项B中的模块中创build一个子,那么你可以这样做:

UserForm1.show 

在选项BI会写这个代码,但在尝试这个我build议你理解更多的vba

 sub ClearWBs() 'opening workbook Workbooks.Open Filename:="c:\book1.xls" 'your code 'your code 'below code for saving and closing the workbook Workbooks("book1.xls").Activate ActiveWorkbook.Save ActiveWorkbook.Close end sub 

使用模块:
如果您的VBA代码专注于数据汇总和操作,我build议您使用一个Module (例如您在问题中描述的内容)。

使用表格:
如果你想做的事情需要一个GUI(graphics用户界面),那么你将不得不求助于你可以devise你的GUI的Form 。 (举例来说,如果你有很多领域,用户需要用不同的值来填充你提供的select)

使用Excel对象:
如果你想要做的事情与工作表和/或工作簿上发生的事件有关,例如,当你添加工作表的macros运行,或者当你打开或closures工作簿macros运行,那么你将不得不写Excel Object的macros。

这基本上是我想到的,希望这有助于。

如果您收到的文件不包含VBA,并且您需要始终在这些文件上应用相同的代码,那么我build议您将该代码保存在个人工作簿中。

你可以看到如何做到这一点: http : //office.microsoft.com/en-ca/excel-help/copy-your-macros-to-a-personal-macro-workbook-HA102174076.aspx

这很好,因为你也可以将其绑定到键盘快捷方式,或只是让它随时准备使用。

缺点是只能在每台计算机的每个用户会话中设置。 你可以做的是将所有的代码都放在一个模块中,然后如果你改变了会话或者其他人必须把它导入你的个人工作簿。

一旦完成,您将不必在您的文件再次包含模块。