ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vba

2022-08-13 13:33:12  阅读:169  来源: 互联网

标签:function ... vba sub cells call name


VBA

VBA是VB的一个子集,主要用于office软件中。

1. 数据类型

  1. 数字

    byte		0 ~ 255
    integer		-32768 ~ 32767
    long		-2,147,483,648 ~ 2,147,483,648
    single		负值:-3.402823E+38 ~ -1.401298E-45,正值: 1.401298E-45 ~ 3.402823E+38
    double		负值:-1.79769313486232e+308 ~ -4.94065645841247E-324,
    			正值:4.94065645841247E-324 ~ 1.79769313486232e+308
    currency	-922,337,203,685,477.5808 ~ 922,337,203,685,477.5807
    decimal		如果不使用小数,则为+/- 79,228,162,514,264,337,593,543,950,335;如果使用小数,则为:+/- 7.9228162514264337593543950335
    
  2. 非数字

    string					固定长度:1 ~ 65,400个字符;可变长度:0到20亿字符
    date					100年1月1日至9999年12月31日
    boolean					True / False
    object					任何嵌入对象
    variant(numeric)		任何大到double的数字值
    variant(text)			与可变长度的string一样。
    
  3. 数组

    dim a(5) as integer			'声明一个数组,长度为5,索引:1~5
    a(i) = "hello"				'赋值
    a(i)						'引用
    

2. 条件语句

  1. if

    if condition then
        ...
    elseif condition then
        ...
    else
        ...
    endif
    

3. 循环语句

  1. do while loop

    do while condition
        ...
        exit do
    loop
    
  2. for next

    for i = 1 to n step 2
    	...
    	exit for
    next i
    

4. 运算符

  • 算术
=	赋值
+	加
-	减
*	乘
/	除
%	模运算
^	指数
  • 逻辑
and		与
or		或
not		非
xor		异或
iif(y>5,"yes","no")		三目运算符(相当于C中 a>b ? y : n)
  • 比较运算
=	相等
<>	不等于
>	大于
<	小于
>=	大于等于
<=	小于等于
  • 连接运算
+	如果2个值为数值,则相加;有一个是string,则连接
&	如果2个值为数值或string,都连接

5. Sub

sub sub_name()
    ...
    exit sub
end sub
-----------------------
call sub_name			'调用

sub是VB下的子过程,能够像函数一样互相调用,但没有返回值。
sub 可以call sub,也可以call function。
用private修饰的sub则只能在本模块下被调用(相当于C中static)

6. Function

function func_name() as integer		'返回值的类型
    ...
    func_name = val		'返回值
    ...
    exit function		'用于退出function
end function
-----------------------
call func_name			'调用

Function是VB中的函数,能够相互调用,并且有返回值

7. sub和function

  1. 参数传递

    在VB中,sub和function的参数传递有2种:byval, byref。且默认byref传递
    byval是值传递,只传递副本;byref是引用传递,传递的是地址(指针)

  2. 调用

    sub能call sub,也能call function。
    function能call sub, 也能call function

  3. 独立运行

    sub能独立运行
    function分2种情况:
    无形参时,能独立运行;有形参时,不能独立运行

8. Execl相关

  1. 对象

    • workbook

      wkb = Workbooks.Open("C:\Users\Administrator\Desktop\水样品编号一览表(更新到6月).xlsx")			'获得一个workbook对象
      
    • worksheet

      sheets(1)				'按顺序索引
      sheets("name")			'按名字索引
      
    • cells

      cells.value							'单元格值
      cells.interior.colorindex			'单元格背景色
      cells.font.colorindex				'单元格字体颜色
      cells.formula						'单元格公式
      
  2. 操作

    1. Range(Cells(r, 1), Cells(r, 3)).Select				'选中
    2. Selection.AutoFill Destination:=Range(Cells(1, 1), Cells(5, 5)), Type:=xlFillDefault								        '填充
    3. sheets.UsedRange.rows.Count							'获得sheets的有效行数
    4. Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove	'插入
        
    
  3. 单元格绝对引用 & 相对引用

    cells(row, colum)		'绝对引用
    cells.formulaR1C1		'相对引用
    R[-1]C					'R1C1上方
    R[+1]C					'R1C1下方
    RC[-1]					'R1C1左边
    RC[+1]					'R1C1右边
    
  4. InputBox & MsgBox

    inputbox("提示")			'输入盒子(相当于python中input())
    msgbox("info")			  '输出信息info到一个跳出的小窗口
    

标签:function,...,vba,sub,cells,call,name
来源: https://www.cnblogs.com/rogerg6/p/16582844.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有