part3 可以将工作表或者整个工作簿保存为HTML(HyperText Markup
Language,超文本标记语言)格式,用Web浏览器就可以访问到。 隐藏公式在激活单元格的时候这些公式不出现在Excel的公示栏中。选择应用公式的单元格,然后在“单元格格式”对话框的“保护”选项卡中,确保选中“隐藏”复选框。 相对引用:这种引用完全是相对的。当复制公式时,单元格引用将调整到它的新位置,例如A1。绝对引用:这种引用完全是绝对的。当复制公式时,单元格引用将不会发生改变,例如$A$1。绝对行引用:这种引用不完全是绝对的。当复制公式时,列部分进行调整,但是行部分不发生改变,例如A$1。绝对列引用:这种引用不完全是绝对的。当复制公式时,行部分进行调整,但是列部分不发生改变,例如$A1。 公式中对单元格和单元格区域的引用,如果要引用另一个工作表中的单元格:=Sheet!A1
1。还可以创建引用另一个工作簿中的单元格的连接公式:=[Budget.xls]Sheet1!A1
1。如果引用中的工作簿名称包括一个或者多个空格:='[Budget For 2003.xls]Sheet1'!A1
A1。如果链接的工作簿被关闭,那么就必须在工作簿引用中添加完整的路径:='C:MSOFFICE\EXCEL\[Budget For
2003.xls]Sheet1'!A1 A1。 假设损坏的文件名称为“Badfile.xls”,先打开一个空白的工作簿,然后在工作簿Sheet1的单元格A1种输入如下公式,进而尝试从工作不文件的Sheet1种回复损坏的数据:='C:Files\[Badfiles.xls]Sheet1'!$A$1。 P34R1C1表示法、P36将名称应用于现有的引用、P37交叉名称、P41数组公式等没看懂。
=TRIM(A1) 功能:删除多余的空格;=FIND(' ',B1,1)
功能:定位第一个空格;=FIND(' ',B1,C1 1)
功能:定位第二个空格;=IF(ISERROR(D1),C1,D1)
功能:如果没有第二个空格,则采用第一个空格;=LEFT(B1,C1)
功能:取出第一个空格之前的字符;=RIGHT(B1,LEN(B1)-E1)
功能:取出最后一个空格之后的字符;=F1&G1 功能连接两个单元格的字符 part4 按ctrl N快捷键将不允许选择模板,而是生成一个默认的工作簿。 模板可以存储在本地计算机上的两个位置中:1)XLStart文件夹:这里存储名为Book.xlt和Sheet.xlt的自动模板,也可以将工作簿模板放在这个文件夹中。2)Templates文件夹:存储在这里的工作簿模板将出现在“新建”对话框中。 找Templates文件夹的位置,可以执行下列VBA语句:MsgBox
Application.TemplatesPath
part6 在规划满足用户需求的应用程序起始阶段,考虑一些常规的地方,如:1)文件结构;2)数据结构;3)使用工是还是VBA;4)采用加载宏还是XLS文件;5)Excel的版本;6)错误处理;7)使用特性,如果应用程序需要汇总很多数据,可能会考虑使用Excel的数据透视表特性;8)性能问题;9)安全级别。 Excel提供了保护工作表和工作表各个部分的几种方法:1)锁定特定的单元格;2)保护整个工作部;3)隐藏特定单元格中的公式;4)锁定工作表上的对象;5)隐藏行、列、工作表和文档;6)将Excel工作簿指定为建议只读;7)指定密码;8)使用密码保护的加载宏。 使得电子表格比较美观和直观:1)在格式、字体、文本大小和颜色上保持一致;2)一个界面或者对话框上不要填满太多信息,比较好的做法是一次只呈现一两组信息;3)不要使用过多的颜色;4)注意数字格式,使用一致的字样、字体大小和边框。 除非确切知道应用程序的用户使用的视频分辨率,否则要使用最低分辨率(800*600像素)模式设计应用程序。可以从VBA使用Windows
API调用来确定用户视频分辨率。
part7 “视图”-“立即窗口”命令的快捷键为Ctrl G。 如果想把某个模块或者UserForm对象复制到另一个工程中实际上没有必要先导出再导入这个对象。确保两个工程都处于打开状态,然后只需要激活“工程资源浏览器”窗口,再将对象从一个工程拖放到另一个工程中即可。 工程中的每个对象都有一个关联的代码窗口:1)工作簿本身(“工程资源浏览器”窗口中的ThisWorkbook);2)工作簿中的工作簿“Sheet1”或者图表工作表“Chart1”;3)VBA模块;4)一个类模块(这种特殊类型的模块允许创建新的对象类);5)一个用户窗体。 如果编写在工作簿打开时要执行的过程,那么该过程必须位于ThisWorkbook对象的“代码”窗口,而且该过程必须有一个特殊的名称。 把一条很长的指令分解在两行或者更多的行中,要在代码行的末尾加上一个空格和一个下划线字符。 要求变量声明:如果不声明变量,那么所有这些变量都将为Variant数据类型。 使用Tab键而不是空格键缩进代码,使用Shift Tab快捷键取消缩进代码行。 宏录制器不能生成执行循环(也就是重复语句)、给变量赋值、执行条件语句、显示对话框等的代码。 按Alt F11激活VBE窗口,Excel不要最大化,否则将不能同时看到VBE窗口和Excel的窗口。 当选择Excel的“插入”-“批注”命令输入单元格批注的时候,就创建了一个Comment对象。 Range('C1:C10 A6:E6') = 3
Excel单元格区域交叉运算符(C10和A6之间的空格表示),进而返回两个单元格区域的较差部分,在这个例子中较差部分是单元格C6,在单元格C6中输入“3“则为如上结果。
part8 VBA过程不需要处理任何对象。 对于稍长的代码行,使用VBA的换行连续序列,用空格和下划线表示。 VBA变量的名称是不区分大小写的。 如果要测试一个不含某个特殊指令或者一组指令的过程,不用删除这些指令,只要将它们转换为注释即可,方法是在指令开始的地方插入一个单引号。VBE的“编辑”工具栏“设置注释块”、“解除注释块”。 如果希望VBA应用程序运行的速度尽可能的快,就要声明变量。 TypeName函数来确定变量的数据类型。 Mod运算符返回两个数相除后的余数。 不能使用具有等价的VBA函数的工作表函数,例如VBA不能访问Excel的SQRT工作表函数,因为VBA有它自己函数版本:Sqr。 在VBA中只有一种情况下必须使用GoTo语句,那就是进行错误捕获的时候。
part9 为了使得错误处理过程起作用,必须关闭“发生错误则中断”设置。 使用On
Error语句指定错误发生时要采取的措施:1)忽略错误并允许VBA继续执行代码。2)跳转到代码中特殊的错误处理节,进而采取动作。可以在代码中插入如下语句:On
Error Resume Next 当缺乏有关特殊方法或者属性的信息时,最好的办法是打开宏录制器,然后在执行某相关的动作时,检查生成的代码。
part10 part11
Sub DeleteEmptyRows() Dim LastRow As Long, r As Long LastRow = ActiveSheet.UsedRange.Rows.Count LastRow = LastRow ActiveSheet.UsedRange.Row - 1 Application.ScreenUpdating = False For r = LastRow To 1 Step -1 If WorksheetFunction.CountA(Rows(r)) = 0 Then
Rows(r).Delete Next r End Sub If Not
Application.CanPlaySounds Then MsgBox
'Sorry, sound is not supported on your system.' Exit
Sub End If part12 part17 part19 当打开工作簿(或者加载宏)时将触发这种事件并执行Workbook_Open过程。Workbook_Open过程几乎可以做任何事,通常用于以下的任务:显示欢迎消息;打开其他的工作簿;设置自定义菜单或者工具栏;激活某个特殊的工作表或者单元格;确保满足特定的条件;设置某些自动化的特性;设置工作表的ScrollArea属性;为工作表设置UserInterfaceOnly保护。 确定何时打开工作簿,UpdateLogFile过程将打开一个文本文件。如果该文件不存在,就创建它。然后写有关打开的工作簿的关键信息:
文件名及其完整的路径、日期、时间和用户名。Workbook_Open过程将调用Init过程。因此,当工作簿打开时,Init过程就会创建这个对象变量。
part21 part26 part30 Internet中有数千个VBA示例,www.j-walk.com/ss/或者在www.google.com网站中搜索。 Excel可以用Windows
API函数播放WAV和MIDI文件。如果是02或者更高的版本,可以利用新的Speech对象。当执行下面的语句时,将用用户的姓名问候用户:Application.Speech.Speak
('Hello' & Application.UserName) 如果在启动Excel时崩溃,可以试试先删除*.xlb文件。为此,要Excel关闭。然后搜索硬盘中的*.xlb文件(文件名和位置将有所不同)。先创建这个文件的备份副本,然后删除,接着重新启动Excel。 VBA使用颜色来区分各种类型的文本:批注、关键字、标识符、带语法错误的语句等。可以通过在VBE中选择“工具”-“选项”命令(在“编辑器格式”选项卡中)调整使用的这些颜色和字体。 除了删除宏以外,还要确保删除了存储它们的VBA模块。 换行连续字符序列实际上包含两个字符:一个下划线和其后的一个空格。 工作簿事件过程(Sub
Workbook_Open)必须放在ThisWorkbook对象的代码模块中。工作表事件过程必须放在相应的Sheet对象的代码模块中,如VBE“工程”窗口所示。 按Ctrl Alt F9快捷键强制重算使用了自定义工作表函数的公式。 针对活动工作表并删除所有非公式的单元格的内容(不影响单元格的格式)。
On Error Resume Next Cells.SpecialCells(xlCellTypeConstants, 23).ClearContents 使用On Error Resume
Next可以防止在没有符合要求的单元格时出现错误。 选中某一列或者某一行中的最后一项,可以使用Ctrl Shift 向下箭头键或者Ctrl Shift
向右箭头键,或者VBA代码:Selection.End(xlDown).Select。其他的常量有xlToLeft,xlToRight和xlUp。 编写VBA指令创建一个公式,如果需要在引号引起来的文本中插入引号,使用两组双引号:=
'=IF(A1=''Yes'',TRUE,FALSE)' 创建加载宏之后对其修改,先激活VBE(按Alt
F11快捷键),然后将ThisWorkbook对象的IsAddIn属性设置为False。对加载宏进行修改,然后把IsAddIn属性设置为True,最后重新保存文件。
part31
|