excel的365个常见问题答疑 - 答案(5)

2019-04-21 17:29

第 21页 /总 38页 第23章 365个常见问题答疑

可以终止Excel进程吗?

答:可使用DOS命令taskkill:

shell \

其中参数 /f表示强制结束进程,不弹出对话框。

问题195:

【录制宏】按钮呈灰色禁用状态,其它按钮都正常,怎么回事?

答:某个SUB过程正处于调试状态。单击工具栏的【重新设置】按钮即可。 问题196:

录制宏时提示“不能记录”怎么回事?

答:模块中存在不完整的代码,例如只有“End sub”没有“SUB”语句。 问题197:

可以暂时禁用鼠标操作和利用键盘在单元格录入任意字符吗? 答:

Application.Interactive = False '修改为True则可以还原 问题198:

可以让单元格的值按显示的值参与计算吗? 答:

ActiveWorkbook.PrecisionAsDisplayed = True

此状态下,单元格的值1.5可能会当作2处理。

问题199:

如何获取当前操作系统的版本?例如XP、VISTA、WIN 7。 答:

MsgBox

CreateObject(\ws NT\\CurrentVersion\

问题200:

用什么方法获取控件的属性值? 答:CallByName,不过它不可以直接判断控件是否具有某属性,需要配合防错语句使用,根据err.number值来判断结果。

CallByName函数除了能获取对象的属性值外,也能执行一些命令,例如移动对象。以下代码用于将窗体中的标签向下移20,向右移30:

CallByName Me.Label1, \问题201:

如何禁止使用右键中的【删除】菜单?

答:将该子菜单的Enabled属性设置为False即可,代码如下:

Application.CommandBars(\删除(&D)...\问题202:

如何让宏自动运行?

答:自动运行分很多种,所有事件都可以自动运行。不过,狭义地讲,自动运行是指名为Auto_open或者Workbook_Open的事件过程。所以代码放入Open事件或者将宏的名称命名为Auto_Open即可。过程Auto_Open的代码要放在模块中才行。

问题203:

VBA中\\和/两个运算符有什么分别?

答:\\表示整除运算,计算结果不带小数;/表示除法运算,结果可能包含小数。

第 22页 /总 38页 第23章 365个常见问题答疑

问题204:

单元格不能使用填充功能,如何修复?

答:将CellDragAndDrop属性赋值为True即可,代码如下:

Application.CellDragAndDrop = True 问题205:

符号“+”在VBA中是表示加法算法吗?

答:不一定,当对数字使用+时表示加法,对文本采用+则表示连接。例如:\问题206:

True参与运算时表示1,False参与运算时表示0吗? 答:在VBA中,True按-1参与运算。

问题207:

Range.Select和Range.Activate有什么分别?

答:Range.Select命令表示选择一个对象或区域,Range.Activate命令表示激活一个对象或者单元格。可以同时Select多个对象,但只能Activate一个对象。

问题208:

可以不显示最近打开的文件列表吗?

答:将DisplayRecentFiles属性设置为False即可,代码如下:

Application.DisplayRecentFiles = False 问题209:

可以知道本机中有哪些磁盘吗?

答:需要使用FSO技术,遍历所有Drive对象,代码如下:

Sub test()

Dim drive As Object

For Each drive In CreateObject(\ MsgBox drive.DriveLetter Next End Sub

问题210:

如何让工作表的单元格根据字符数量自动调整为最合适的行高? 答:使用Range. AutoFit方法妈可,代码如下:

Cells.EntireRow.AutoFit 问题211:

可以通过变量的循环执行一系列SUB过程吗?例如宏1、宏2、宏3。 答:需使用Application.Run方法

Sub test()

For i = 1 To 3

Application.Run \宏\ Next End Sub

问题212:

如何判断是否添加了scrrun.dll文件的引用?

答:获取名为“Scripting”的引用对象对称,获取失败表示没有添加scrrun.dll文件的引用。

Sub test()

On Error Resume Next

a = ThisWorkbook.VBProject.References(\

第 23页 /总 38页 第23章 365个常见问题答疑

If Err.Number = 0 Then MsgBox \已添加引用\未添加引用\End Sub

问题213:

如何计算工作簿中的窗体、模块、类模块的总数量? 答:

MsgBox ThisWorkbook.VBProject.VBComponents.Count - Sheets.Count - 1

其中“-1”表示减去Thisworkbook对象自身,否则会多计算一个。 问题214:

“编译错误:找不到工程或库”是什么意思? 答:未正确添加引用。

问题215:

可以使用工作表打印时上下、左右居中吗?

答:CenterHorizontally和CenterVertically控制着居中方式

ActiveSheet.PageSetup.CenterHorizontally = True ActiveSheet.PageSetup.CenterVertically = True

问题216:

Msgbox 的第二参数64代表什么意思? 答:

第二参数用于指定对话框的按钮和图标,64代表Information Message图标,即一个叹号 。可以用16、32、24分别测试其它图标效果。

问题217:

Sheets和Worksheets有什么分别?

答:前者代表所有表,后者仅代表工作表。表包括工作表和图表、宏表和5.0对话框。 问题218:

为什么使用自定义函数时,没有自动更新计算结果?

答:使用Application.Volatile语句将函数标示为易失性函数即可。 问题219:

如何取消显示的分页符? 答:

ActiveSheet.DisplayPageBreaks = False 问题220:

宏的安全性设置为低时,可以做到打开工作簿而不启用宏吗?

答:打开Excel的状态下,按住Shift键再单击“打开”按钮打开工作簿。 问题221:

如何判断变量的类型? 答:使用Typename函数。

问题222:

VBA中[]括号在配合运算表达式使用时有什么用?

答:类似于Evaluate方法,可以将转换或者计算表达式。不过[]中的文本不需要用引号,Evaluate的参数需使用引号。

问题223:

可以一次插入30个工作表吗?

答:对Sheets.Add 方法的Count参数赋值为30即可:

第 24页 /总 38页 第23章 365个常见问题答疑

Sheets.Add Sheets(Sheets.Count), , 30 问题224:

对普通变量赋值和对对象变量赋值有什么分别?

答:对象变量需要用Set进行赋值,否则会出错;对普通变量赋值可用let,也可以忽略,直接通过等号赋值即可。

set 工作表变量=sheets(1) '对象变量赋值 let 普通变量=123 '普通变量赋值

问题225:

变量的作用域如何理解?

答:作用域指变量的可用范围。例如变量可以在本模块中使用,而另一个模块中不可以调用;再如变量只能在本过程中调用,其它过程不能调用。

问题226:

变量有生存周期吗?

答:变量生存周期指变量的可调用的时间范围。当释放变量后就不可能调用。可以手工释放,也可以自动释放。有些变量是过程结束时自动释放变量,有些是工作簿关闭时才释放变量。

问题227:

如何让工作表区域全屏显示?

答:Application.DisplayFullScreen属性赋值为True即可:

Application.DisplayFullScreen = True

问题228:

如何将区域转换成图片放入剪贴板供程序调用? 答:使用Range.CopyPicture方法:

Range(\问题229:

ActiveWorkbook与ThisWorkbook有什么区别?

答:前者为活动工作簿,后者为代码所在工作簿,两者有时表示同一个工作簿,有时表示不同工作簿。

问题230:

如何判断工作表是否处于保护状态? 答:

msgbox ActiveSheet.ProtectContents

如果返回TRUE则表示处于保护状态,否则未保护。

问题231:

为什么使用“Cells.Find(What:=\”查找包括A的单元格时有时成功有时不成功?

答:使用Find时需要将LookIn和LookAt两个参数都写全,否则就可能不成功,因为Find有记忆功能,会受上一次的设置所影响。

问题232:

为什么“Range(\”运行有时出错有时可用?

答:Exce 2010在兼容模式下不可以使用,为了让代码通用,可以改用“cells(rows.count,1)”。

问题233:

如何获取两个区域的合集?

第 25页 /总 38页 第23章 365个常见问题答疑

答:使用Union方法,例如:

Union([a1], [g2:h20]) 问题234:如何获取两个区域的交集? 答:

Intersect([a1:g4], [g2:h20])

如果参数与参数之间不存在交集,那么Intersect返回Nothing。

问题235:

Auto_Open过程与Workbook_Open事件过程有什么区别?

答:两者功能一样,但两者同时出现时,Workbook_Open事件先运行,Auto_Open过程后运行;Workbook_Open事件需要放在Thisworkbook代码窗口中才运行,Auto_Open放于模块中。

问题236:

为什么工作簿保存后再打开代码就不见了?

答:需要使用xlsm格式或者xls格式,保存为xlsx格式时文件中的VBA代码将自动消失。

问题237:

录制宏有哪些限制?

答:Excel的部分操作可以录制,部分操作不能录制;条件语句、循环语句、事件、窗本等等都不能通过录制宏产生。但是录制宏对于编程仍然极其重要。

问题238:

可以取消双击受保护的工作表时弹出的警告对话框吗? 答:在BeforeDoubleClick事件中写入以下代码:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Locked Then Cancel = True End Sub

问题239:

如何设置每3分钟自动保存? 答:

Application.AutoRecover.Time = 3 问题240:

循环语句中的Step有什么用?

答:它表示步长值,正向循环且步长为1时可以忽略,其它一切情况都必须指定Step参数。例如“for i=100 to 1 Step -1”中的step就是必选项。

问题241:

Show 1和Show 0有什么分别?

答:Show的参数表示窗体显示为有模式还是无模式,通俗的讲就是窗体显示后能不能再操作单元格。此属性对Excel 2000及以前的版本无效。

问题242:

Debug.Print是什么意思?

答:用于调试代码,可在“立即”窗口输出文本,例如“Debug.Print i”表示输出变量i的值。

问题243:

使用正则表达式需要添加哪一个文件的引用? 答:vbscript.dll


excel的365个常见问题答疑 - 答案(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:稻盛和夫

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: