1.一維數(shù)組讀出來放在工作表里一行里
Option Explicit
Sub 一維數(shù)組讀一行里()
Dim arr1
arr1 = Array("佛山小老鼠", "張三", "李四", "小妮子", "丫頭")
Range("A1").Resize(1, UBound(arr1) + 1) = arr1
End Sub
Sub 清空()
Range("A1:E1") = ""
End Sub
2.一維數(shù)組讀出來放在工作表里一列里
Sub 一維數(shù)組讀一列里()
Dim arr1
arr1 = Array("佛山小老鼠", "張三", "李四", "小妮子", "丫頭")
Range("A1").Resize(UBound(arr1) + 1, 1) = Application.WorksheetFunction.Transpose(arr1)
’由于一維數(shù)組讀到單元格只能讀成橫向的,所以我們要通過轉(zhuǎn)置函數(shù)Transpose,轉(zhuǎn)成縱向的
End Sub
3.二維數(shù)組讀出到工作表里
Sub 把二維數(shù)組讀到單元格中()
Dim arr1
arr1 = Range("A1").CurrentRegion
[E1].Resize(UBound(arr1, 1), UBound(arr1, 2)) = arr1
'函數(shù)Ubound是取得數(shù)組arr1最大的索引號,
'UBound(arr1, 1)數(shù)組arr1最大的行索引號
'UBound(arr1, 2))最大的列索引號
End Sub
4.由于部分函數(shù)只支持一維數(shù)組,而我們單元格區(qū)域裝入數(shù)組都是二維的,怎么辦?
A.工作表里一行數(shù)據(jù)轉(zhuǎn)一維
Sub 工作表里一行數(shù)據(jù)轉(zhuǎn)一維1() '分開寫的
Dim arr1, arr2, arr3
arr1 = Range("A1:E1")
arr2 = Application.WorksheetFunction.Transpose(arr1)
arr3 = Application.WorksheetFunction.Transpose(arr2)
End Sub
Sub 工作表里一行數(shù)據(jù)轉(zhuǎn)一維2() '合起寫的
Dim arr1, arr2
arr1 = Range("A1:E1")
arr2 = Application.WorksheetFunction.Transpose(Application.WorksheetFunction.Transpose(arr1))
'為什么要轉(zhuǎn)二次呢,因?yàn)榈谝淮问前?行5列的二維數(shù)組轉(zhuǎn)置成5行1列的二維數(shù)組
第二次是把5行1列的二維數(shù)組轉(zhuǎn)成一維數(shù)組
End Sub
Sub 工作表里一行數(shù)據(jù)轉(zhuǎn)一維3() '簡寫的
Dim arr1, arr2
arr1 = Range("A1:E1")
arr2 = Application.Transpose(Application.Transpose(arr1))
'我們可以把二個WorksheetFunction省略
End Sub
B.一工作表里一列數(shù)據(jù)轉(zhuǎn)一維
Sub 工作表里一列數(shù)據(jù)轉(zhuǎn)一維()
Dim arr1, arr2
arr1 = Range("A1:A5")
arr2 = Application.WorksheetFunction.Transpose(arr1)
'如果是工作表里的一列裝到數(shù)組里,只需轉(zhuǎn)一次
End Sub