VBA学习笔记.docx
- 文档编号:11966318
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:58
- 大小:71.99KB
VBA学习笔记.docx
《VBA学习笔记.docx》由会员分享,可在线阅读,更多相关《VBA学习笔记.docx(58页珍藏版)》请在冰豆网上搜索。
VBA学习笔记
123
VBA学习笔记
----谢勋圣
一、单元格在VBA的表示方法:
1、方法1:
Range("单元格地址"),如Range("a1")即为A1单元格。
2、方法2:
CELLS(行,列),如CELLS(1,1)也为A1单元格,CELLS(2,1)为A2单元格。
二、工作表在VBA中表示方法:
sheets("工作表名")
如Sheets("sheet1")即为sheet1表。
三、区域的表示方法:
RANGE(CELLS(),CELLS())
1、单元格区域:
Range(cells(1,1),cells(20,1))或Range("a1:
a20");
2、所有单元格区域:
Cells.select;其中select是“选择”的意思;
3、所有已使用的单元格区域:
Sheets("sheet1").UsedRange.Select。
四、清除按钮代码表示方法:
Range("A1:
A22").ClearContents
五、对话框的表示方法:
1、一键选择对话框:
对话框的表示方法:
MsgBox"需要显示的文字"。
2、三键选择对话框:
Sub洪水计算()
msg=MsgBox("是:
打印成果"&"否:
重新计算"&"取消:
放弃打印"&Chr(13),vbYesNoCancel,"谢顺胜恭喜你计算正确!
可以打印了,谢谢使用!
")
Ifmsg=vbYesThen
Call打印成果'调用打印成果
Else:
Ifmsg=vbCancelThenExitSub
Call洪水计算'调用洪水计算
EndIf
EndSub
3、两键选择对话框:
Sub洪水计算()
msg=MsgBox("是:
打印成果"&"否:
重新计算"&Chr(13),vbYesNoCancel,"谢顺胜恭喜你计算正确!
可以打印了,谢谢使用!
")
Ifmsg=vbYesThen
Call打印成果'调用打印成果
Else:
Ifmsg=vbCancelThenExitSub
Call洪水计算'调用洪水计算
EndIf
EndSub
六、编程中调用自定义函数的表示方法:
Application.CountIf
七、把打开的某个工作设为当前工作薄的表示方法:
Workbooks("2.XLS").Activate
八、一次新建多个工作薄并存盘的表示方法:
Fori=10To13
Workbooks.Add
ActiveWorkbook.SaveAsFilename:
="c:
\"&i&".xls"
Next
九、关闭工作薄的表示方法:
1、关闭所有打开的工作薄:
Workbooks.close;
2、关闭指定的工作薄:
Workbooks("123.XLS").close。
十、颜色的表示方法:
1、黑色:
ColorIndex=1;
2、白色:
ColorIndex=2或0;
3、红色:
ColorIndex=3;
4、绿色:
ColorIndex=4;
5、兰色:
ColorIndex=5;
6、黄色:
ColorIndex=6;
7、粉红色:
ColorIndex=7;
8、青色:
ColorIndex=8;
(下略)
十一、名称和标志
1、名称:
为了直观地标识单元格或单元格区域,我们给它们一个名称,从而在公式或函数中直接引用。
例如:
“B2:
B46”区域存放着学生的物理成绩,求解平均分的公式一般是“=AVERAGE(B2:
B46)”;在给B2:
B46区域命名为“物理分数”以后,该公式就可以变为“=AVERAGE(物理分数)”,从而使公式变得更加直观。
给一个单元格或区域命名的方法是:
选中要命名的单元格或单元格区域,鼠标单击编辑栏顶端的“名称框”,在其中输入名称后回车。
也可以选中要命名的单元格或单元格区域,单击“插入→名称→定义”菜单命令,在打开的“定义名称”对话框中输入名称后确定即可。
如果你要删除已经命名的区域,可以按相同方法打开“定义名称”对话框,选中你要删除的名称删除即可。
2、标志:
由于Excel工作表多数带有“列标志”。
例如一张成绩统计表的首行通常带有“序号”、“姓名”、“数学”、“物理”等“列标志”(也可以称为字段),如果单击“工具→选项”菜单命令,在打开的对话框中单击“重新计算”选项卡,选中“工作簿选项”选项组中的“接受公式标志”选项,公式就可以直接引用“列标志”了。
例如“B2:
B46”区域存放着学生的物理成绩,而B1单元格已经输入了“物理”字样,则求物理平均分的公式可以写成“=AVERAGE(物理)”。
(创建好的名称可以被所有工作表引用,而且引用时不需要在名称前面添加工作表名(这就是使用名称的主要优点),因此名称引用实际上是一种绝对引用。
但是公式引用“列标志”时的限制较多,它只能在当前数据列的下方引用,不能跨越工作表引用,但是引用“列标志”的公式在一定条件下可以复制。
从本质上讲,名称和标志都是单元格引用的一种方式。
因为它们不是文本,使用时名称和标志都不能添加引号。
)
十二、VisualBasic常数
1、Miscellaneous常数
下列常数由VisualBasicforApplications中的类型库定义,可用来在代码中的任何地方代替实际值:
常数
等于
描述
vbCrLf
Chr(13)+Chr(10)
回车符与换行符结合
vbCr
Chr(13)
回车符
vbLf
Chr(10)
换行符
vbNewLine
Chr(13)+Chr(10)or,ontheMacintosh,Chr(13)
平台指定的新行字符;适用于当前平台
vbNullChar
Chr(0)
值为0的字符
vbNullString
值为0的字符串
用来调用外部过程;与长度为零的字符串("")不同
vbObjectError
-2147221504
用户定义的错误号应当大于该值,例如:
Err.RaiseNumber=vbObjectError+1000
vbTab
Chr(9)
Tab字。
vbBack
Chr(8)
退格字符
vbFormFeed
Chr(12)
在MicrosoftWindowsorontheMacintosh中没有作用
vbVerticalTab
Chr(11)
在MicrosoftorontheMacintoshWindows中没有作用
2、Keycode常数
可在代码中的任何地方用下列常数代替实际值:
常数
值
描述
vbKeyLButton
0x1
鼠标左键
vbKeyRButton
0x2
鼠标右键
vbKeyCancel
0x3
CANCEL键
vbKeyMButton
0x4
鼠标中键
vbKeyBack
0x8
BACKSPACE键
vbKeyTab
0x9
TAB键
vbKeyClear
0xC
CLEAR键
vbKeyReturn
0xD
ENTER键
vbKeyShift
0x10
SHIFT键
vbKeyControl
0x11
CTRL键
vbKeyMenu
0x12
MENU键
vbKeyPause
0x13
PAUSE键
vbKeyCapital
0x14
CAPSLOCK键
vbKeyEscape
0x1B
ESC键
vbKeySpace
0x20
SPACEBAR键
vbKeyPageUp
0x21
PAGEUP键
常数
值
描述
vbKeyPageDown
0x22
PAGEDOWN键
vbKeyEnd
0x23
END键
vbKeyHome
0x24
HOME键
vbKeyLeft
0x25
LEFTARROW键
vbKeyUp
0x26
UPARROW键
vbKeyRight
0x27
RIGHTARROW键
vbKeyDown
0x28
DOWNARROW键
vbKeySelect
0x29
SELECT键
vbKeyPrint
0x2A
PRINTSCREEN键
vbKeyExecute
0x2B
EXECUTE键
vbKeySnapshot
0x2C
SNAPSHOT键
vbKeyInsert
0x2D
INSERT键
vbKeyDelete
0x2E
DELETE键
vbKeyHelp
0x2F
HELP键
vbKeyNumlock
0x90
NUMLOCK键
A至Z键与A–Z字母的ASCII码相同:
常数
值
描述
vbKeyA
65
A键
vbKeyB
66
B键
vbKeyC
67
C键
vbKeyD
68
D键
vbKeyE
69
E键
vbKeyF
70
F键
vbKeyG
71
G键
vbKeyH
72
H键
vbKeyI
73
I键
vbKeyJ
74
J键
vbKeyK
75
K键
vbKeyL
76
L键
vbKeyM
77
M键
vbKeyN
78
N键
vbKeyO
79
O键
vbKeyP
80
P键
vbKeyQ
81
Q键
vbKeyR
82
R键
vbKeyS
83
S键
vbKeyT
84
T键
vbKeyU
85
U键
vbKeyV
86
V键
vbKeyW
87
W键
vbKeyX
88
X键
vbKeyY
89
Y键
vbKeyZ
90
Z键
0至9键与数字0–9的ASCII码相同:
常数
值
描述
vbKey0
48
0键
vbKey1
49
1键
vbKey2
50
2键
vbKey3
51
3键
vbKey4
52
4键
vbKey5
53
5键
vbKey6
54
6键
vbKey7
55
7键
vbKey8
56
8键
vbKey9
57
9键
下列常数代表数字键盘上的键:
常数
值
描述
vbKeyNumpad0
0x60
0键
vbKeyNumpad1
0x61
1键
vbKeyNumpad2
0x62
2键
vbKeyNumpad3
0x63
3键
vbKeyNumpad4
0x64
4键
vbKeyNumpad5
0x65
5键
vbKeyNumpad6
0x66
6键
vbKeyNumpad7
0x67
7键
vbKeyNumpad8
0x68
8键
vbKeyNumpad9
0x69
9键
vbKeyMultiply
0x6A
MULTIPLICATIONSIGN(*)键
vbKeyAdd
0x6B
PLUSSIGN(+)键
vbKeySeparator
0x6C
ENTER键
vbKeySubtract
0x6D
MINUSSIGN(–)键
vbKeyDecimal
0x6E
DECIMALPOINT(.)键
vbKeyDivide
0x6F
DIVISIONSIGN(/)键
下列常数代表功能键:
常数
值
描述
vbKeyF1
0x70
F1键
vbKeyF2
0x71
F2键
vbKeyF3
0x72
F3键
vbKeyF4
0x73
F4键
vbKeyF5
0x74
F5键
vbKeyF6
0x75
F6键
vbKeyF7
0x76
F7键
vbKeyF8
0x77
F8键
vbKeyF9
0x78
F9键
vbKeyF10
0x79
F10键
vbKeyF11
0x7A
F11键
vbKeyF12
0x7B
F12键
vbKeyF13
0x7C
F13键
vbKeyF14
0x7D
F14键
vbKeyF15
0x7E
F15键
vbKeyF16
0x7F
F16键
3、MsgBox常数
可在代码中的任何地方使用下列常数代替实际值:
①MsgBox参数
常数
值
描述
vbOKOnly
0
只有OK按钮(缺省值)
vbOKCancel
1
OK和Cancel按钮
vbAbortRetryIgnore
2
Abort、Retry,和Ignore按钮
vbYesNoCancel
3
Yes、No,和Cancel按钮
vbYesNo
4
Yes和No按钮
vbRetryCancel
5
Retry和Cancel按钮
vbCritical
16
关键消息
vbQuestion
32
警告询问
vbExclamation
48
警告消息
vbInformation
64
通知消息
vbDefaultButton1
0
第一个按钮是缺省的(缺省值)
vbDefaultButton2
256
第二个按钮是缺省的
vbDefaultButton3
512
第三个按钮是缺省的
vbDefaultButton4
768
第四个按钮是缺省的
vbApplicationModal
0
应用程序形态的消息框(缺省值)
vbSystemModal
4096
系统强制返回的消息框
vbMsgBoxHelpButton
16384
添加Help按钮到消息框
VbMsgBoxSetForeground
65536
指定消息框窗口作为前景窗口
vbMsgBoxRight
524288
文本是右对齐的
vbMsgBoxRtlReading
1048576
指定在希伯来语和阿拉伯语系统中,文本应当显示为从右到左读
②MsgBox返回值
常数
值
描述
vbOK
1
按下OK按钮
vbCancel
2
按下Cancel按钮
vbAbort
3
按下Abort按钮
vbRetry
4
按下Retry按钮
vbIgnore
5
按下Ignore按钮
vbYes
6
按下Yes按钮
vbNo
7
按下No按钮
③StrConv常数
可在代码中的任何地方使用下列常数代替实际值:
Constant
值
描述
vbUpperCase
1
将字符串转换成大写字符。
vbLowerCase
2
将字符串转换成小写字符。
vbProperCase
3
将字符串中每个词的第一个字母转换成大写。
④系统颜色常数
可在代码中的任何地方用下列常数代替实际值:
常数
值
描述
vbScrollBars
0x80000000
滚动条颜色
vbDesktop
0x80000001
桌面颜色
vbActiveTitleBar
0x80000002
活动窗口的标题栏颜色
vbInactiveTitleBar
0x80000003
非活动窗口的标题栏颜色
vbMenuBar
0x80000004
菜单背景色
vbWindowBackground
0x80000005
窗口背景色
vbWindowFrame
0x80000006
窗口框架颜色
vbMenuText
0x80000007
菜单文本颜色
vbWindowText
0x80000008
窗口文本颜色
vbTitleBarText
0x80000009
标题、调整框和滚动箭头的文本颜色
vbActiveBorder
0x8000000A
活动窗口边框颜色
vbInactiveBorder
0x8000000B
非活动窗口边框颜色
vbApplicationWorkspace
0x8000000C
多文档界面(MDI)应用程序的背景色
vbHighlight
0x8000000D
控件中选中项目的背景色
vbHighlightText
0x8000000E
控件中选中项目的文本颜色
vbButtonFace
0x8000000F
命令按钮表面阴影颜色
vbButtonShadow
0x80000010
命令按钮边缘阴影颜色
vbGrayText
0x80000011
灰色(无效)文本
vbButtonText
0x80000012
下压按钮文本颜色
vbInactiveCaptionText
0x80000013
非活动标题文本颜色
vb3DHighlight
0x80000014
3-D显示元素的突出显示颜色
vb3DDKShadow
0x80000015
3-D显示元素的最深阴影颜色
vb3DLight
0x80000016
vb3Dhighlight之外最亮的3-D颜色
vbInfoText
0x80000017
工具提示文本颜色
vbInfoBackground
0x80000018
工具提示背景色
十三、Call语句
将控制权转移到一个Sub过程,Function过程,或动态链接库(DLL)过程。
1、语法
[Call]name[argumentlist]
Call语句的语法具有以下几个部分:
部分
描述
Call
可选参数;关键字。
如果指定了这个关键字,则argumentlist必须加上括号,例如:
CallMyProc(0)
name
必要参数,要调用的过程名称。
argumentlist
2、说明
调用一个过程时,并不一定要使用Call关键字。
如果使用Call关键字来调用一个需要参数的过程,argumentlist就必须要加上括号。
如果省略了Call关键字,那么也必须要省略argumentlis外面的括号。
如果使用Call语法来调用内建函数或用户定义函数,则函数的返回值将被丢弃。
若要将整个数组传给一个过程,使用数组名,然后在数组名后加上空括号。
3、Call语句示例
下列示例示范如何使用Call语句来将控制转移到子过程、内在函数、和动态链接库(DLL)过程,或是Macintosh代码资源内的过程。
'调用一个子过程。
CallPrintToDebugWindow("HelloWorld")
'上面的语句将控制转移到下面的子过程。
SubPrintToDebugWindow(AnyString)
Debug.PrintAnyString'在“立即”窗口中显示。
EndSub
'调用一个内在函数,函数的返回值被忽略不处理。
CallShell(AppName,1)'AppName包含可执行文件的路径。
'调用MicrosoftWindowsDLL过程。
该声明语句必需是类模块中的私有的,而不是标准模块中的。
PrivateDeclareSubMessageBeepLib"User"(ByValNAsInteger)
SubCallMyDll()
CallMessageBeep(0)'调用WindowsDLL过程。
MessageBeep0'再次调用,但不用“调用”这个关键字。
EndSub
Sub工程名称()
Dims工程名称AsVariant
s工程名称=InputBox("请输入本工程名称:
")
MsgBox"本工程名称为:
"&s工程名称
MsgBox"输入成功,谢谢合作!
"
Range("M3").Select
ActiveCell.FormulaR1C1=s工程名称
ActiveWorkbook.Save
Range("e3").Select
EndSub
Sub创建各标段评分表格()
Dims标段数AsString
s标段数=InputBox("请输入本次招标标段数:
")
Ifs标段数>0Ands标段数<6Then
MsgBox"按“确定”按钮生成表格。
"&Chr(13)&"表格生成需要一些时间,请你耐心等待!
"&Chr(13),vbYes,"本次招标分"&s标段数&"个标段"
Else:
MsgBox"对不起!
标段划分不正确,请重新输入标段数(1-5个之间),谢谢!
"
EndIf
Range("M2").Select
ActiveCell.FormulaR1C1=s标段数
ChDir"d:
\复合标底评分软件(Excel6.0版)"
IfActiveCell.FormulaR1C1=1Then
Sheets("创建表格").Select
Application.Run"创建表格.xls!
创建标段评分表格1"
ActiveWindow.Close
Range("e3").Select
MsgBox"恭喜你,表格生成成功!
"
ElseIfActiveCell.FormulaR1C1=2Then
Workbooks.OpenFilename:
=_
"d:
\复合标底评分软件(Excel6.0版)\创建表格.xls"
Application.Run"创建表格.xls!
创建标段评分表格1"
Application.Run"创建表格.xls!
创建标段评分表格2"
ActiveWindow.Close
Range("e3").Select
MsgBox"恭喜你,表格生成成功!
"
ElseIfActiveCell.FormulaR1C1=3Then
Workbooks.OpenFilename:
=_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBA 学习 笔记