VBA基础知识整理(事件,数组)

事件

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
	 MsgBox "单元格选择发生了改变"
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
 	Application.EnableEvents = False 	’取消事件级联
  	Target = Target * 2
 	Application.EnableEvents = True
End Sub

Private Sub Worksheet_Calculate()
 	MsgBox "公式的值发生了改变"
End Sub

Private Sub Worksheet_Calculate()
 	MsgBox "公式的值发生了改变"
End Sub

程序事件

    Public WithEvents app As Excel.Application
    -----------------------------------------------------------------
    Private Sub Workbook_Open()
 		Set app = Excel.Application
    End Sub
	-----------------------------------------------------
    Private Sub app_WorkbookOpen(ByVal Wb As Workbook)
    ' a = Application.InputBox("请输入打开excel程序口令", "安全提示")
    ' If a <> 123 Then
    '   Wb.Close False
    ' End If
    End Sub

VBA数组

数组与单元格的区别,数组更快

    Sub v4() '运行时间0.01秒
	     Dim t
	     t = Timer
	     For x = 1 To 100000
	       		m = m + 1000 '真接调用内存中的值
	     Next x
	     MsgBox Timer - t
    End Sub
    --------------------------------------------------
    Sub v5() '运行时间0.5秒
	     Dim t
	     t = Timer
	     For x = 1 To 100000
	       		m = m + Cells(1, 1) '调用单元格中的值
	     Next x
	      MsgBox Timer - t
    End Sub
----------------------------------------
'1、什么是VBA数组呢?
    
    'VBA数组就是储存一组数据的数据空间?数据类型可以数字,可以是文本,可以是对象,也可以是VBA数组.
    
'2 VBA数组存在形态
     ' VBA数组是以变量形式存放的一个空间,它也有行有列,也可以是三维空间。
           
    '1) 常量数组
          'array(1,2)
          'array(array(1,2,4),array("a","b","c"))
    '2) 静态数组
          'x(4) '有5个位置,编号从0~4
          'arr(1 to 10) '有10个位置,编号1~10
          'arr(1 to 10,1 to 2) '10行2列的空间,总共20个位置,这是二维数组
          'arr(1 to 10,1 to 2,1 to 3) '三维数组,总10*2*3=60个位置。这是三维数组
    '3)动态数组
          'arr() '不知道有多少行多少列

'向VBA数组中写入数据

1、按编号(标)写入和读取
   
 Sub t1() '写入一维数组
     Dim x As Integer
     Dim arr(1 To 10)	'下标从1开始,默认从0开始
     arr(2) = 190
     arr(10) = 5
 End Sub

 Sub t2() '向二维数组写入数据和读取
     Dim x As Integer, y As Integer
     Dim arr(1 To 5, 1 To 4)
     
     For x &#
  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值