Excel VBA 代码笔记
2016-07-27 14:14
344 查看
【数组对单元格赋值】
如果数组是二维的,直接赋值Range("A1").Resize(UBound(ARR), 2) = ARR
如果数组是一维的,需要转置
Range("A1").Resize(UBound(ARR), 2) = application.transpose(ARR)
【FIND方法运用】
Sub Find1() '在某列查找 Dim k k = Range("A:A").Find("A").Row MsgBox k End Sub Sub Find11() '在多列查找 Dim k k = Range("A:B").Find("BCD").Row MsgBox k End Sub Sub Find2() '查找的起始位置 Dim k k = Range("A:B").Find("A", AFTER:=Range("A5")).Row MsgBox k End Sub Sub Find3() '在值中查找 Dim k k = Range("B:B").Find("SE", LookIn:=xlValues).Row MsgBox k End Sub Sub Find31() '在公式中查找 Dim k k = Range("B:B").Find("C2", LookIn:=xlFormulas).Address MsgBox k End Sub Sub Find32() '在备注中查找 Dim k k = Range("B:C").Find("AB", LookIn:=xlComments).Address MsgBox k End Sub Sub Find41() '按模糊查找 Dim k k = Range("B:C").Find("A", LookIn:=xlValues, LOOKAT:=xlPart).Address MsgBox k End Sub Sub Find42() '匹配查找 Dim k k = Range("B:C").Find("A", LookIn:=xlValues, LOOKAT:=xlWhole).Address MsgBox k End Sub Sub Find5() '按先行后列的方式查找 Dim k k = Range("A:B").Find("AB", LookIn:=xlValues, LOOKAT:=xlWhole, SEARCHORDER:=xlByRows).Address MsgBox k End Sub Sub Find51() '按先列后行的方式查找 Dim k k = Range("A:B").Find("AB", LookIn:=xlValues, LOOKAT:=xlWhole, SEARCHORDER:=xlByColumns).Address MsgBox k End Sub Sub Find6() '查找方向(从后向前) Dim k k = Range("A:A").Find("A", , xlValues, xlWhole, xlByColumns, xlPrevious).Address MsgBox k End Sub Sub Find61() '查找方向(从前向后) Dim k k = Range("A:A").Find("A", , xlValues, xlWhole, xlByColumns, xlNext).Address MsgBox k End Sub Sub Find7() '字母大小写 Dim k k = Range("a:b").Find("a", , xlValues, xlWhole, xlByColumns, xlNext, False).Address MsgBox k End Sub Sub f7() '查找不到的情况 Dim MRG As Range Set MRG = Range("A:A").Find("D") If MRG Is Nothing Then MsgBox "查找不到字母D" Else MsgBox "查找成功,单元格地址为:" & MRG.Address End If End Sub
【新建/保存/关闭工作簿】
Dim wk as workbook set wk = workbook.Add '新建工作簿 p="C:\test.xlsx" '保存路径 wk.SaveAs p '保存文件 wk.Close savechanges:=True '关闭并保存
【Excel 提示框】
Application.DisplayAlerts = True '显示提示框(默认) Application.DisplayAlerts = False '隐藏提示框
【数组上标IBOUND/下标UBOUND】
Sub 一维() Dim arr(-19 To 8) MsgBox UBound(arr) '返回最大编号,结果为8 MsgBox LBound(arr) '返回最小编号,结果为-19 End Sub
Sub 二维() Dim arr(-19 To 8, 2 4000 To 5) MsgBox UBound(arr) '返回第1维(行的)最大编号,结果为8 MsgBox LBound(arr) '返回第1维(行的)小编号,结果为-19 MsgBox UBound(arr, 2) '返回第2维(列的)最大编号,结果为5 MsgBox LBound(arr, 2) '返回第2维(列的)最小编号,结果为2 End Sub
【重新定义数组ReDim】
ReDim arr(1 To x) '重新定义一维大小x RdDim Preserve arr(1 To 5,1 To x) '重新定义二维数组及保留原有数据 '使用preserve关键字只能修改最后一维的
相关文章推荐
- 递归函数
- Excel VBA:数据管理与维护
- Excel VBA练习:字典类型与正则表达式的使用
- Excel VBA中如何支持复数计算?
- Excel VBA 学习总结 - 数据验证与正则表达式
- 解除Excel密码保护大全
- Excel vba中使用vlookup函数
- 把当前文件夹中所有txt读入到excel中
- excel VBA根据excel列值 拷贝文件并修改文件名
- VBA 出现400错误
- Excel VBA入门(4) - Workbook常用功能及方法介绍
- Excel VBA入门(5) - Worksheet对象常用属性
- Excel VBA入门(6) - Worksheet对象常用方法事件
- 解读MCE(Machine Check Exception)和Intel CSR寄存器(configuration Registers)的代码含义工具
- EXCEL vba在哪里填加控件,控件的事件在哪里,打开页面就赋值
- Excel-VBA 入门
- Excel VBA 自动添加新行并递增ID
- EXCEL vba 实现通过超链接跳转到隐藏工作表 回到目录隐藏打开工作表
- 【一步一步学习VBA】Excel VBA 获取当前单元格的数据类型
- 【一步一步学习VBA】Excel VBA 在当前目录创建一个excel表