大神,求解VBA代码,可以发一下吗?公司过两天要审核了,Excel VBA密码忘了,急死了,求你们

其中“宏名”文本框显示为默认的名称“Macro1”,建议修改为有意义的名称,在“快捷键”文本框中输入的字母将作为运行宏的组合键即<Ctrl+Shift+字母>。在“保存在”下拉列表扣列出了保存录制宏的3个位置:当前工作簿,新工作簿和个人宏工作簿,选择“当前工作簿”将宏保存在活动工作簿中,选择“新工作簿”将宏保存在一个新的空工作簿,选择“个人宏工作簿”将宏保存在名为Personal.xls的特定文件中,启动Excel时会自动地装载该文件。在“说明”文本框中添加宏的注释,即显示在代码顶部的文字,用来提供与该宏相关的信息。

通常在录制宏之前,应规划好操作步骤,尽可能少地录制不必要的操作。

Step2 单击“确定”按钮开始录制宏。此时会出现如图1-4所示的工具栏,包含两个按钮:“停止

录制”按钮和“相对引用”按钮。单击“停止录制”按钮将停止录制操作,单击“相对引用”按钮将以相对于当前单元格的方式录制操作。默认的情况下,Excel采用绝对引用的方式录制宏。

注意:此时工作簿状态栏中会出现“录音”的提示,菜单也由“录制新宏”变为“停止录制”。

Step3 Excel中进行操作。单击菜单“数据”→“筛选”→“高级筛选”,在打开的“高级筛选”对话框中选中“将筛选结果复制到其他位置”单选按钮,如图1-5所示。

Step4 在“高级筛选”对话框中单击“列表区域”文本框,然后用鼠标选定Database工作表中A1:F10单元格区域,即原始数据列表。

Step5 在“高级筛选”对话框中单击“条件区域”文本框,然后用鼠标选定Result工作表中的B2:C3单元格区域,即指定的日期范围。

Step6 在“高级筛选”对话框中单击“复制到”文本框,然后用鼠标选定Result工作表中的B5单元格,即目标数据区域的起始单元格。完成选择后的“高级筛选”对话框如图1-6所示。

Step7 单击“确定”按钮,获取的数据将复制到单元格B5开始的区域中,结果如图1-7所示。

宏录制将记录步骤3至步骤7所进行的操作,并将其转换成相应的VBA代码。

Step8 关闭宏录制,单击菜单“工具”→“宏”→“Visual

Step9 整理或修改代码。录制操作完成,接下来应该在VBE中整理或修改宏录制器所录制的宏代码,使宏更简洁、更灵活且更有效率。

通常宏录制器会“认真地”记录用户的每一步操作,应用与操作相关的所有属性和方法的所有参数,而实际进行的操作仅仅为其中的一部分,因此可以删除代码中与操作无关的方法参数和属性。比如在大多数情况下,有关选定对象和激活对象的代码并无实际的用途,而且会降低宏代码的整体效率,所以可以删除。

此外,通过录制而得到的宏代码不够灵活,仅能用于执行某项特定的操作任务;不能做出判断,不能执行循环,不能提示用户僌相关信息,不能使用为题赋值;只能生成Sub过程。因此为了创建功能更强大的宏程序,有必要对录制宏的代码进行改进。

在修改录制的代码时,应及时地调试代码,以免误删所需要的代码。

本例中录制的代码很简洁,没有多余的代码,因此无须整理。在进一步的应用中,需要获取AdvancedFilter方法所在的代码并适当地修改该代码,当用户在Database工作表中增加数据时能查询最新的数据,使代码更灵活。修改后的代码如下:

3行中的代码获取Database工作表中已使用区域的行数并赋值给变量lLastRow

4行中的代码清除了当前工作表中上次查询所获得的数据,以免在本次查询的结果中留下不必要的数据。

5行中的代码修改了宏录制器生成的代码,使用变量lLastRow扩展数据列表,从而可以获取最新的数据。

修改代码后可以在Database工作表中添加数据,重新运行GetData过程。如果新添加的数据满足条件,就会自动地添加到结果数据表中。

注意:运行此段代码时,Result工作表应该为活动工作表。

可以修改Result工作表单元格区域B3:C3中的日期范围,然后再次运行GetData过程,从而获取满足该日期范围的数据。

技巧2 执行宏(调用过程)的5种方式

Excel中执行宏,实际上就是调用ExcelVBA过程。Excel提供了多种调用过程的方式,以满足不同的情形和适应不同的需求。下面介绍几种常用的调用过程的方法。

2-1 利用“窗体”控件或对象调用过程

Step1 从“窗体”工具栏中拖放“按钮”控件到工作表的适当位置,将出现“宏”对话框;或者在已经存在于工作表中的“按钮”上单击右键,从弹出的快捷菜单中选择“指定宏”,如图2-1所示。显示“窗体”工具栏的方法是单击菜单“视图”→“工具栏”→“窗体”。

Step2 在“宏”对话框中选择相应的“宏名”,然后单击“确定”按钮,如图2-2所示。

Step3 单击工作表中的任意一个单元格,取消对该按钮的选择。现在只要单击该按钮就能够执行宏(调用指定的过程)。Excel工作表中的图片、形状也可以调用过程,调用的方法与上面的步骤相同。

2-2 利用“控件工具箱”控件调用过程

步骤1 选择“控件工具箱”工具栏中的“命令按钮”进入设计模式。显示“控件工具箱”工具栏的方法是单击菜单“视图”→“工具栏”→“控件工具箱”。

步骤2 拖放“命令按钮”控件到工作表的适当位置,双击该命令按钮或者在该命令按钮上单击右键,从弹出的快捷菜单中选择“查看代码”如图2-3所示。

步骤3 在该命令按钮的单击事件过程中,输入调用过程的代码如下:

其中Call语句调用GetDatas过程。也可以不加Call语句,而直接输入要调用的过程名称GetDatas

步骤4 回到Excel界面,单击“控件工具箱”工具栏左上角的按钮退出设计模式,如图2-4所示。

此时单击该命令按钮即可调用指定的过程。

2-3 在菜单或工具栏中调用过程

Excel菜单中能够添加菜单项,然后使用该菜单项调用过程。

步骤1 单击菜单“工具”→“自定义”,在弹出的“自定义”对话框中选择“命令”选项卡。

步骤2 在左侧的“类别”栏中找到“宏”,然后单击右侧的“命令”栏中的“自定义菜单项”。

步骤3 拖动“自定义菜单项”到菜单栏,例如将其拖至菜单“文件”中的“文件搜索”的下方,创建一个自定义菜单项,如图2-5所示。

步骤4 在刚创建的自定义菜单项中单击右键。

步骤5 在弹出的右键菜单中可以重命名该菜单项,为其命名一个有意义的名称,例如输入“数据搜索”。

步骤6 在右键菜单中单击“指定宏”。

步骤7 在打开的“指定宏”对话框中选择相应的宏名,然后单击“确定”按钮。

步骤8 在“自定义”对话框中单击“关闭”按钮。

此时在菜单“文件”下就新增了一个名为“数据搜索”的菜单项,单击该菜单项即可调用指定的“自定义按钮”拖至工具栏相应的位置并指定宏。

2-4 在一个过程中调用另一个过程

在使用VBA编写程序时,一个好的习惯是尽量将实现单独功能的代码放置在独立的过程中,并在主过程中调用这些独立的过程。这样不仅便于程序的调试,而且程序的结构清晰,便于理解和维护,取也能够重复使用通用的过程代码。

下面用一个示例演示在程序中调用过程的方法。如图2-6所示的工作表,其中“加班费基数”固定,每个加班为80元,“加班数”由人工输入,“加班系数”根据加班个数而不同,“加班费”为“加班费基数”、“加班数”和“加班系数”的乘积。要求自动地根据“加班数”确定“加班系数”并得到“加班费”数值,然后将最大加班费数值所在的单元格的底纹设置为绿色。

'获取加班系数并输入工作表

'计算加班费并输入工作表

'设置加班费列的格式并突出显示最大值

本示例包括5个过程,其中myMain过程为主调过程,用来调用另外4个过程。

GetExtraNum过程用来获致“加班系数”并输入到工作表相应的单元格中。该过程中调用GetExtra函数过程根据“加班数”来获取相应的“加班系数”,其中使用了Select Case结构语句。

CalculateExtra过程用来计算“加班费”并输入工作表,代码中使用R1C1样式的公式计算单元格数值的乘积。

SetFormat过程用来设置“加班费”列的格式,其中第31行至第33行中的代码使用条件格式来判断单元格区域中的最大值,并对该值所在的单元格设置格式。

7行、第9行和第12行中的代码调用Sub过程,第19行中的代码调用Function过程。除了本书后面介绍的属性过程外,ExcelVBA有两种类型的过程:Sub过程和Function过程。

Sub过程中能够调用Function过程和其他的Sub过程。如果从另一个过程中调用Sub过程,那么该Sub过程可以接受输入参数。

注意:不能运行一个带有直接输入参数的Sub过程。

Function过程也可以接受输入参数,能够调用另一个Function过程,甚至Sub过程。与Sub过程不同的是:Function过程能够返回值。

注意:自定义函数内置的工作表函数的效率更低,特别是在工作表中大量地使用自定义函数时。此外,自定义函数不能操作工作表及其单元格,不能改变单元格的格式设置,例如复制或移动单元格、设置字体的颜色等。

myMain过程中使用Call语句调用过程,也可以省略Call语句,直接使用过程的名称来调用该过程。在使用Call语句调用过程时,如果该过程有参数,则必须在被调过程的参数的周围加上括号,如第12行中的代码。如果省略Call语句,对于带参数的Sub过程,参数的周围则不应该放置括号;对于Function过程,如果要使用该函数过程的返回值,则应该在参数的周围放置括号,如果不需要使用带参数的Function过程的返回值,在参数的周围则不需要放置括号。

在定义参数时,建议同时声明参数的类型。对于Function过程,建议同时声明该函数过程的返回值类型,例如第37行中的代码。此外在指定参数的值时,应使用“:=”指定参数的名称以便于理解。

运行myMain过程后结果如图2-7所示。

如果在打开工作簿时,希望直接运行技巧1中的GetDatas过程,则可在工作簿的Open事件过程中输入下面的代码:

当然还可以使用Application对象的Run方法执行过程。关于Run方法的具体使用请参阅技巧19.

首先可以确定VBA是自带加密工程的,以设置密码的方式,但是如果是商业性或者高标准的加密,VBA的加密基本不能满足需要,VBA的加密只能用于预防使用者非恶意的修改,不能称为版权和知识保护的工具。

以下是VBA加密的方法:1. 打开VBA界面2. 选择左侧VBAProject(文件名.xls),也就是所有表格最上面的那个3. 右键-VBAProject属性-选择“保护”标签-勾选“查看时锁定工程”并输入密码-确定自此,VBA的密码就设定好了,单纯打开Excel,将不能直接查看VBA代码,会提示输入密码。

但是很遗憾的时,有很多工具可以直接绕过密码,或者重置密码,连破解密码都不需要,所以如果要用于商业性加密,可以考虑其他软件,或者使用专业数据库代替XLS文件。

EXCE如何用VBA代码加入启动时对所有工作表加密,并设指定密码? ...

除非你有一定的基础,去找断点。

不过DLL文件在理论上是不可反编译的,所以,还是打消破解的念头吧,如果学会破解了,那里面的代码对你来说也是小事一桩了,不值得看了。

顺便说下,目前没有哪个软件能破解DLL文件,包括用它封装的软件都不能!...

新建excel,ALT+F11插入以下代码,按住F8执行,浏览到有VBA工程密码的excel文件,确定后,再按F5就可以了。

Excel是一个专门用于整理数据的电子表格,为了保障表格的安全,用户可以为文档进行加密,可以设置以下类型密码:打开密码、编辑密码、工作表密码、共享账簿密码以及VBA密码。

VBA全称是VisualBasicforApplications,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。

另外,也可说VBA是一种应用程式视觉化的Basic脚本。

实际上VBA是寄生于VB应用程序的版本,可以具备VBA的宏功能。

VBA密码就是为变成语言设置访问权限。

破解VBA密码有两种方法:1、使用宏代码,这种方法比较专业,不具有普遍的适用性;2、使用专业的第三方密码破解工具,这个可以广泛被使用,传播比较广泛的是AdvancedOfficePasswordRecovery,使用软件打开Excel文档,程序会自动开始破解VBA密码的操作,一旦破解成功,用户可以更改Excel文档的VBA密码,重新获取权限。


〕中比较难的部分,只有

高手才能将它活用,然而有些

但是却因为加了密码而看不到里

面具体的程序,想解除这

可不是什么简洁的是,但是不用担忧,我都能帮你

对于设置了工作表密码的工作簿,打开后,具〔体操〕作步骤如下:

:通过菜单【开发工具】

编辑窗口的【马上窗口】中逐步执行以下代码

车后再输入另一句并回车其中

为需要破解密码的工作表的名称

逐步执行这两行代码后,工作表的密码将被解除

编辑窗口时没有马上窗口,可以通过菜单【视图】

口】调出来,如以下图所示:

假如需要批量解除的,可以自行加入循环把握语句,写成一个过程。代码参

界面,点击左侧要执行代码的工作表,出现右侧空白编

输入代码,点击运行按钮,或者按

这样,就执行了宏代码:

我要回帖

更多关于 代码大神啥意思 的文章

 

随机推荐