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

2026/1/14 22:57:04

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

问题42:

VBA可以打开资管源管理器中的文件夹吗? 答:

Shell \

其中参数vbMaximizedFocus表示打开文件夹后窗口最大化。 问题43:

如何删除选区中的所有空格? 答:

Selection.Replace What:=\

注意LookAt参数要赋值为xlPart,表示部分匹配。

问题44:

VBA可以读写注册表中任意键值吗? 答:VBA自带的Getsetting和Savesetting只能读写指定路径的键值,但VBA调用脚本语言来读写注册表就可以操作任意键值。

问题45:

ontime如何调用具有参数的过程?例如

Sub a(b) MsgBox b End Sub

答:将过程名与参数一起作为OnTime的参数,过程的参数要加引号,代码如下:

Application.OnTime Now + TimeValue(\你好\

问题46:

可以禁止用户插入新表吗?

答:保护工作簿可以实现,在Workbook_NewSheet事件中自动删除工作表也可以实现。 问题47:

如何中途阻止运行过程?

答:使用快捷键 【Ctrl+Break】或者按住【ESC】键不松开。 问题48:

可以屏弊内置的快捷键吗?

答:用OnKey即可,例如禁用【Ctrl+c】用以下代码:

Application.OnKey \问题49:

Range.text与Range.value有何区别?

答:前者表示单元格显示的文本,后者为单元格中真正的值,自定义数字格式后两者会有较大分别。

问题50:

如何一键删除工作表中所有图形对象? 答:

ActiveSheet.DrawingObjects.Delete

此代码可以录制宏产生。

问题51:

VBA可以修改系统日期吗?

答:直接对Date赋值即可,代码如下:

Date = \

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

问题52:

如何将工作簿另存到D盘中,且工作簿名由A1单元格的值决定。 答:使用Workbook.SaveAs方法。

ActiveWorkbook.SaveAs \问题53:

如何禁用单元格右键菜单?

答:将Cancel 参数赋值为True即可。

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Cancel = True

End Sub

问题54:

可以禁止双击修改单元格吗?

答:将Cancel 参数赋值为True即可。

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Cancel = True End Sub

问题55:

如何一次性清除工作表中所有公式结果为错误值的单元格? 答:

On Error Resume Next

Cells.SpecialCells(xlCellTypeFormulas, 16) = \

问题56:

Evaluate方法可以将任意表达式进行转换计算吗? 答:不行,它有参数长度不超过256的限制。

问题57:

可以为自定义函数添加每一个参数的说明吗?

中:Excel 2010可以,通过MacroOptions的最后一个参数实现。Excel 2003和2007的MacroOptions只能添加函数说明,不能对参数添加说明。

问题58:

如何生成包括第X页 共Y页的页眉?

答:在PageSetup对象中使用“第&P页 共&N页”即可,P代表当前页,N代码总数。 ActiveSheet.PageSetup.LeftHeader = \第&P页 共&N页\问题59:

如何判断当前工作表处于筛选状态? 答:

MsgBox ActiveSheet.FilterMode

如果结果为True则表示处于筛选状态。

问题60:

可以用一句代码实现合并A1:A10的值吗?

答:Join能将数组的值合并成一个字符串,但不支持区域作参数,所以使用工作表函数Transpose将参数转换成数组后再配合Join即可实现: MsgBox Join(WorksheetFunction.Transpose([a1:a10]), \问题61:

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

如何一键删除超链接? 答:

ActiveSheet.Hyperlinks.Delete

问题62:

可以用一句代码实现对二维数组变量赋值吗?

答:公式中的{}可以创建二维数组,添加[]后即可使其在VBA中使用。

Arr = [{1,2,3;4,5,6}] 问题63:

如何计算“D:\\工作”文件夹的大小?

VBA的FileLen只能计算文件大小,使用FSO对象的GetFolder才能获取文件夹的信息,代码如下:

CreateObject(\工作\问题64:

不用循环能计算1到100之间自然数之和吗? 答:直接调用数组公式即可,代码如下:

MsgBox [sum(row(1:100))] 问题65:

可以一句代码实现向下填充所有空白单元格吗? 答:

On error resume next '防止不存在空白单元格时出错

ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = \

问题66:

什么是溢出错误?

答:对变量赋值时,值大于它的有效范围,例如对Byte型的变量赋值300。

问题67:

下标越界是什么意思?

答:参数值超过了参数的上下限。例如工作表数量为3时,用代码访问第4个工作表,或者访问的对象不存在(例如写错了工作表名称、工作簿名称、图片名称等等)。 问题68:

如何禁止合并单元格和删除工作表时弹出提示?

答:在合并单元格或者删除工作表的代码前加“Application.DisplayAlerts = False”;在其后加“Application.DisplayAlerts = True”

问题69:

如何禁止用户中断程序的运行过程? 答:

Application.EnableCancelKey = xlDisabled

问题70:

可以在较单词时不区分大小写吗? 答:在模块的顶部写入以下代码:

Option Compare Text 问题71:

可以让数组的默认下标为1吗? 答:在模块的顶部写入以下代码:

Option Base 1 第 8页 /总 38页 第23章 365个常见问题答疑

问题72:

可以用VBA打开控制面板吗? 答:

a = Shell(\

或者

CreateObject(\问题73:

如何取得“d:\\123.xlsm”的创建时间? 答:

FileDateTime只能获取文件最后一次修改的时间,获取创建时间要用FSO对象的DateCreated属性实现。 MsgBox CreateObject(\问题74:

动态变量和静态变量的区别何在?

答:动态变量在结束过程时会释放变量值,静态变量在关闭工作簿时或者使用End时才释放变量值。

问题75:

如何防止程序因出错而弹出错误对话框? 答:使用防错语句:

On error resume next 问题76:

批量删除或者插入行时,如何防止屏幕闪动? 答:使用“Application.ScreenUpdating = False” 但在程序结束时需要恢复此设置。

问题77:

运行窗体时可以只显示窗体,看不到Excel界面吗? 答:在运行窗体前加入以下代码:

Application.Visible = False

再将“Application.Visible = True”代码放在窗体的关闭事件中,使Excel界面还原为显示状态。

问题78:

如果隐藏所有批注,红色箭头也能一起隐藏吗? 答:

Application.DisplayCommentIndicator = xlNoIndicator 问题79:

在对话框中录入字符串时,可以显示为星号吗?

答:使用窗体中的文字框时可以。将其PasswordChar属性设置为True即可,inputbox对话框不可以,除非调用API函数产生一个inputbox类似的对话框。

问题80:

如何取得Excel的安装路径? 答:

MsgBox Application.Path 问题81:

如何打开Windows自带的计算器?


excel的365个常见问题答疑 - 答案.doc 将本文的Word文档下载到电脑
搜索更多关于: excel的365个常见问题答疑 - 答案 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

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