VBA 使用陣列

2022-05-17 10:39:12 字數 4301 閱讀 3725

從例子中了解什麼是陣列:在vba裡陣列就是一組變數

這個是從今天0點開始已經過了多少秒的時間

for i = 2 to 200000

if range("g

" & i) = range("

n5") then '

每一次取值都要到range("n5")裡取值,所以很耽誤時間

k = k + range("

j" &i)

end if

next

range("p5

") =k

msgbox timer -t

end sub

優化1

sub ss2()

dim i, k

dim str as string

t =timer

str = range("

n5") '

這樣就只取用一次

for i = 2 to 200000

if range("g

" & i) = str then '

從變數裡面取值

k = k + range("

j" &i)

end if

next

range("p5

") =k

msgbox timer -t

end sub

優化2 這樣運算速度特別快

sub ss3()

dim i, k

dim str as string

dim arr() '陣列

t =timer

arr = range("

g1:j200000

") '

是二維的 arr(行,列)

str = range("

n5") '

這樣就只取用一次

for i = 2 to 200000

if arr(i,

1) = str then '

從變數裡面取值

k = k + arr(i, 4

) end if

next

range("p5

") =k

msgbox timer -t

end sub

陣列的深入了解:靜態陣列

sub test()

dim arr(

1 to 4) '

在這裡定義陣列範圍,這個是一維的,是橫著的

arr(1) = "張三"

arr(

2) = "李四"

arr(

3) = "趙五"

range("b1

") = arr(2) '

就是 「李四」

range("

a10:d14

") = arr '

輸出是橫著的

end sub

再舉個例子:動態陣列

sub test()

dim arr()

arr = range("

a1:a5

") '

直接把放到陣列裡

range("

c1") = arr(2, 1

)end sub

查詢銷售冠軍:使用陣列作為輔助列,作為儲存空間,陣列可以直接用在函式裡

計算出該組的最高銷售額及產品

再深入一步:在這了解redim 以及ubound和lbound的作用

sub test()

dim arr()

'dim裡面只能用常量

dim j, i as integer

j = range("

a65536

").end(xlup).row - 1

redim arr(

1 to j) '

重定義for i = 1 to jarr(i) = range("

b" & i + 1) * range("

c" & i + 1

)next

range("h3

range("h2

") = range("ah3

"), arr, 0) + 1

)msgbox ubound(arr)

'這裡是針對arr 有兩個方法計算arr的上限和下限,ubound是上限 lbound是下限

'可以結合for迴圈使用

end sub

排列組合計算匯款資訊:這裡用到了goto 方法來退出所有迴圈

通過陣列來優化

sub test()

dim i, j, k, l as integer

t =timer

arr = range("

a1:a80")

for i = 2 to 80

for j = 2 to 80

for k = 2 to 80

for l = 2 to 80

if arr(i,

1) + arr(j, 1) + arr(k, 1) + arr(l, 1) = 124704

then

range("f3

") = arr(i, 1

) range("g3

") = arr(j, 1

) range("h3

") = arr(k, 1

) range("i3

") = arr(l, 1

) goto

100end if

next

next

next

next

100msgbox format(timer - t, "

0.00000")

end sub

vba 陣列(動態陣列)

主要內容 本文章主要介紹vba中,陣列的使用,特別介紹動態陣列的使用,並有簡單事例,幫助理解。陣列是我們經常用到的儲存資料的一種媒介,他到底是什麼呢?陣列是具有相同資料型別並且共享乙個名字的一組變數的集合。通俗的說,陣列是變數。陣列的宣告 可以用dim語句或者public語句生命陣列。如 dim p...

vba 陣列 陣列引數

關於賦值 我看了很多本書都沒有看到這樣子的,包括官方文件,所以我就寫了下來。sub a dim a dim c a array 1,2,3,4 這裡a後面的 可以給也可以不給 c a end sub寫法一 sub a paramarray a as variant paramarray 可以用byr...

VBA陣列賦值

先說一下,剛才乙個錯誤的操作,連儲存的草稿都沒了,這也太懸了。以後還是在本地寫好了再放上來。陣列是這樣賦值的 dim a2 10 as integer 10是可以使用的最大上標,這和c語言不太一樣 dim a3 2 to 10 as integer 也可以定義下標 dim a1 as integer...