【数组对单元格赋值】
如果数组是二维的,直接赋值
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关键字只能修改最后一维的