Excel VBA 代码笔记

【数组对单元格赋值】

如果数组是二维的,直接赋值

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 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关键字只能修改最后一维的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JOSON.

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值