第 37页 /总 38页 第23章 365个常见问题答疑
前一个getImage是按钮的参数名称,后一个getImage是VB中的自定义函数名称,用于获取图片资源,可以改用其它名称。
问题358:
For next...Next和For Each...Next两种循环方式有何区别?
答:前者应用范围更广,使用了后者的代码基本都能改用前者代替,实现相同功能。 For Each...Next仅适用于对对象集合进行循环,例如单元格对象、工作表对象、磁盘对象、图片对象等等。而对于从1循环到100这类问题只有使用For next...Next才能解决。 问题359:
录制宏对于学习VBA有什么帮助? 答:录制宏产生的代码通常不能直接使用,它的效率较低,而且并非所有操作都能录制。但是录制宏对于学习VBA而言至关重要,是无可替代的。
录制宏可以产生操作对象的对象名称、方法、属性等代码,从而为书写代码提供参考,同时也避免手工录入时写错单词的可能性。
例如对“在最右添加一个新工作表,且命名为ABC”录制宏,产生的代码如下:
Sub 宏1()
Sheets.Add After:=Sheets(Sheets.Count) Sheets(\
Sheets(\End Sub
此段代码显然有问题,通用性很不好,无法将它应用在实际的工作中,但是它同时又为编写代码提供了极大的帮助。帮助一是通过录制获得了创建新表和对工作表命名的代码,从而在忘记了代码时照样可以编程。帮助二是对录制宏产生的代码稍作修改即可完美地实现需求,从而大大地缩减了工作量。最后的代码如下:
Sub 宏1()
Sheets.Add After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = \End Sub
也可以精简为以下代码:
Sub 宏1()
Sheets.Add(After:=Sheets(Sheets.Count)).Name = \ End Sub
问题360:
如何实现单元格中输入自定义函数时也产生参数提示?
答:只有内置函数才可以实现,自定义函数只能产生函数名称提示,不可能产生参数提示。
问题361:
能打开工作簿而获取工作簿中某个工作表的已用区域的值吗? 答:不可以。
可以实现不打开工作簿而取该工作簿中指定工作表名和单元格地址的值,但不可能计算工作簿中某个工作表的已用区域是什么。换句话说只有明确的知道工作表名称和单元格地址时才能从未开启的工作簿中取值,如果工作表名称未知或者需要引用的区域地址未知、需要通过对该工作簿进行计算才能获得地址时就无法实现。
问题362:
利用VB 6.0企业版封装有窗体的VBA插件时,使用VB新建一个窗体更好还是直接将Excel中设计好的窗体导入到VB中使用更好?
第 38页 /总 38页 第23章 365个常见问题答疑
直接将Excel中设计好的窗体导入到VB中使用更好,因为有些控件只有Excel才有,VB中没有。在少数情况下VB能做到与Excel中设计的窗体效果和功能都一样。
另外,对于复杂的窗体,在VB中再设计一次需要花费较长时间,而且由于控件的默认名称不同,需要逐个修改控件名称,否则VBA代码复制到VB中无法使用。
但是在VB中创建窗体相对于直接调用Excel中设计好的窗体也有一个好处:可以借用API代码美化VB创建的窗体,却不能在VB中使用API函数美化从Excel中导出的窗体。
问题363:
VB中有哪些函数或者语句与工作表函数同名但用法不同? 答:Date语句与工作表函数Date功能不同,用法也不同; IF语句与工作表函数IF功能不同,用法也不同;
MOD运算符与工作表函数MOD功能相同,用法不同; Replae方法与工作表函数Replae功能不同,也法也不同; FIND方法与工作表函数Find功能不同,也法也不同; Trim函数与工作表函数Trim功能不同,用法相同。 Round函数与工作表函数Round功能不同,用法相同。
问题364:
为什么For Next循环结束后,变量的值不等于循环体的终值(即End参数)?
答:变量的值在循环完成后等于终值加步长值,例如运行以下两句代码后,变量i的值等于4:
For i = 1 To 3 Next
例如运行以下两句代码后,变量i的值等于13:
For i = 1 To 10 Step 3 Next
问题365:
使用VB将Excel VBA代码封装成DLL文件后,再用Inno Setup软件制作成EXE安装文件,在安装该程序时需要注意什么?
答:
1.由于这是Excel插件,所以必须安装了Microsoft Office Excel软件后才能安装插件; 2.不能将它安装在WPS中,因为引用的对象不同;
3.如果是VISTA或者WIN 7、WIN 8,需要将用户帐户控制关闭,否则无法安装成功; 4.必须用管理员用户安装,其它用户无DLL文件的注册权限;
5.必须是完整版OFFICE,采用精简OFFICE时会因为缺少必要的文件而每次开启Excel时都提示补充文件;
6.尽量关闭Excel后再安装。
——罗刚君 2013-3-18

