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

2019-04-21 17:29

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

MsgBox ActiveCell.Text = ActiveCell.Value 问题101:

如何判断活动单元格是否存在条件格式?

答:计算FormatConditions的数量,大于0则表示有条件格式,代码如下:

MsgBox ActiveCell.FormatConditions.Count > 0 问题102:

如何用一句代码删除A列的重复值? 答:

Columns(\

问题103:

可以使自己的SUB过程不出现在宏对话框中吗? 答:通过Private将过程声明为私有过程即可。 问题104:

如何计算活动工作表能打印多少页? 答:

ActiveWindow.View = xlPageBreakPreview

MsgBox ExecuteExcel4Macro(\

问题105:

可以每次打印前将已用区域更新为打印区域吗?

答:将已用区域的地址赋值给PrintArea即可,代码如下:

ActiveSheet.PageSetup.PrintArea = ActiveSheet.UsedRange.Address 问题106:

名称也分作用域吗?

答:定义的名称包括工作表级和工作簿级。工作表级名称的名字中会带有工作表名称,属于私有名称;而工作簿级名称为公有名称,通过Activeworkbook.Names调用即可。 问题107:

为什么代码前面有的空几格,有些不空?是必须的吗?有何规则?

答:在一行代码前添加空格是为了美观,以及便于查看代码的结构。这不是必须的,但可增加方便性。通常由各语句的层级结构决定缩进几个空格。

问题108:

能否多句代码写在一行中? 答:可以,利用冒号分隔即可。

问题109:

多句代码写在一行和写在多行是否在执行过程中没有任何分别?

答:大多数时间没有分别,但在某些条件语句下两种写法会有所差异,本书中有介绍。 问题110:

一句较长的代码如何分多行书写?

答:在需要断开的地方添加“ _”即可,注意第一个字符是空格。

不能将一个单词拆开,例如把“Range”5个字母写在两行中会导致代码执行出错。 问题111:

有些代码中有“VBA.”,这是什么意思?必须的吗?

答:编写代码时,使用“VBA.”是为了调用VBA内部的属性、方法或者函数,便于从中选择需要的单词。

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

这不是必要的,但会增加便利性。

问题112:

某些代码前有一个撇号,那代表什么?

答:表示将代码转换成注释,注释是不执行的,可以在任何需要的时候将它还原成可执行的代码,删除撇号即可。

也可以使用Rem代替撇号。

问题113:

VBA如何调用DOS命令? 答:

Shell Environ$(\您的代码 & \

例如:

Shell Environ$(\

以上代码表示用DOS命令新建一个文件夹12345,位于D盘。 问题114:

用代码删除文件是否不经过回收站?

答:VBA中的Kill和DOS下的delete删除文件都不经过回收站。 不过如果调用API函数是可以让它从回收站还原的。 问题115:

如何在指定的行插入一个分页符? 答:

ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Range(\问题116:

常量既然在程序运行中不产生变化,为什么不直接使用值本身而要用常量呢?

答:使用常量可以简化输入,而且如果需要修改值时,仅需对常量的赋值作修改即可,不需要逐一修改所有代码中出现的值。

问题117:

为什么部分函数无法通过worksheetfunction调用?

答:通常是因为VBA有内置的具有相同功能的函数可以替代,这种情况下用VBA的函数即可。

问题118:

可以在活动单元格的批注中插入一行,显示当前日期吗? 答:使用以下代码即可,不要要确保单元格已经有批注。

ActiveCell.Comment.Text Text:=ActiveCell.Comment.Text & Date 问题119:

如何判断一个图片是否在D1单元格之上? 答:

MsgBox Not Intersect(Range(Sheet1.Shapes(1).TopLeftCell, Sheet1.Shapes(1).BottomRightCell), [d1]) Is Nothing

问题120:

“信任对VBA工程对象模型的访问”复选框项有何用?

答:通过它可以控制VBA代码对VBE工程的访问权限,在未勾选的状态下,所有VBE相关的代码都禁止执行。例如:

MsgBox Application.VBE.Version

只有勾选“信任对VBA工程对象模型的访问”后才能执行以下代码。

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

问题121:

如何计算带有“[备注]”的表达式?例如“1200*8[8台诺基亚手机]+3400*5[iphone4]”。 答:将[替换成“*ISTEXT(\”,将]替换成“]\”,然后使用Evaluate计算即可。

MsgBox Evaluate(Replace(Replace(\台诺基亚手机]+3400*5[iphone4]\\

问题122:

如何获取某个盘符的序列号?例如C盘。 答:

CreateObject(\问题123:

如何获取硬盘的物理序列号? 答:

MsgBox

GetObject(\ICALDRIVE0\

问题124:

VBA中的IIF和IF...Then...Else有何分别?

答:IIF是函数,用于返回值;IF...Then...Else是条件语句,可以在指定条件下执行任何语句,比IIF更强大,不能返回值。

问题125:

IIF是否和工作表函数IF用法一致?

答:语法基础相同,但是IIF有一个BUG:不管第一参数是否为True,它都会计算第二和第三参数。当条件为True但第三参数是错误值时,IIF语句也会出错。

问题126:

单元格右键菜单被禁用时如何恢复? 答:执行以下两句代码即可:

Application.CommandBars(\Application.CommandBars(\

问题127:

有什么方法或者属性、函数能检查是否存在某个名称的工作表?

答:没有现成的,可以自己定义一个函数实现。在函数中引用该名称的工作表,然看判断代码是否出错,如果引用出错则表示不存在。

问题128:

如何将一个区域的公式转换成值? 答:

Range(\问题129:

批注框的大小可以调整为自动适应文字的多少吗? 答: ActiveCell.Comment.Shape.TextFrame.AutoSize = True 问题130:

如何一次性将工作表中所有公式所在单元格标示为黄色? 答:

On error resume next '避免无公式时代码出错

cells.SpecialCells(xlCellTypeFormulas, 23).Interior.Color = 65535

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

问题131:

如何启动发送邮件的窗口?且向指定用户名发送。 答:

ActiveWorkbook.FollowHyperlink \问题132:

如何禁用窗体右上角的关闭按钮?

答:在窗体的QueryClose事件中写入以下代码:

If CloseMode <> 1 Then Cancel = True 问题133:

如何开启指定文件夹? 答:

ActiveWorkbook.FollowHyperlink Address:=\生产表\

或者:

shell \生产表\问题134:

Alt+F11快捷键被禁用了,如何修复? 答:

Application.OnKey \问题135:

可以把本工作簿的关闭时间写入注册表吗? 答:

SaveSetting方法能将任意文本存入注册表。 SaveSetting \关闭时间\问题136:

如何删除“D:\\生产表”? 答:

CreateObject(\生产表\

问题137:

如何调用屏保锁定屏幕? 答:

Shell Environ(\问题138:

可以实现暂停0.5秒钟吗? 答:

Private Declare Sub Sleep Lib \Sleep 500 '500代表0.5秒钟

问题139:

可以一键删除所有“0”所在行吗? 答:将0值替换成计算结果为错误值的公式,然后定位错误公式并整行删除。代码如下:

On error resume next '避免无0值时代码出错

Cells.Replace What:=\Cells.SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete

问题140:

如何实现用一句代码将Sheet1的所有数据复制到“总表”中? 答:

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

Sheet1.UsedRange.Copy Sheets(\总表\问题141:

如何实现将活动单元格最后一个字符设置为上标? 答:需要用到Characters,代码如下:

ActiveCell.Characters(Start:=Len(ActiveCell.Value), Length:=1).Font.Superscript = True 问题142:

可以实现锁定所有公式所在单元格从而防止误修改吗? 答:

Sub test()

Cells.Locked = True '锁定所有单元格

Cells.SpecialCells(xlCellTypeConstants, 23).Locked = False '将公式以外的非空单元格取消锁定 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True '保护工作表 End Sub

问题143:

如何取消工作表中所有单元格的隐藏属性? 答:

Cells.EntireColumn.Hidden = False '显示所有列 Cells.EntireRow.Hidden = False '显示所有行

问题144:

如何实现隐藏所有零值? 答:

ActiveWindow.DisplayZeros = False 问题145:

窗体中有两个文本框,能实现文本框中录入数据后敲回车键时执行命令,而不是通过单击按钮来执行命令吗?

答:将需要执行的命令写入TextBox1_Exit事件中即可。

TextBox1_Exit事件表示一个控件即将把焦点转移到另一个控件时触发的事件,当在第一个文字框中按下回车键时会自动转移焦点到另一个文字框。

问题146:

窗体可以永远显示最上层吗?

答:VBA无法做到,窗体本身没有这个属性。不过VBA调用API函数是可以实现的。 问题147:

如何删除d盘中所有Excel文件? 答:

Shell Environ$(\

请小心测试,使用新工作簿或不重要的表格测试代码。

如果需要将子目录中的工作簿一起删除可以对del命令加一个参数“-s” 问题148:

如何实现在状态栏显示动态时间?要求时间可以实时更新。 答:

sub auto_open()

Application.StatusBar = \现在时刻: \

Application.OnTime Now + TimeValue(\end sub

问题149:


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

下一篇:稻盛和夫

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

马上注册会员

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