1樓:華師
窗體放一個label和一個command,**如下:
private sub command1_click()
dim i, a(19), max, min, sum, a1, a2, a3, a4, a5 as integer
label1.caption = ""
randomize
label1.caption = "20名學生成績:" & vbcrlf
for i = 0 to 19
a(i) = int(rnd * 101)
label1.caption = label1.caption & a(i) & iif(i = 19, vbcrlf, ",") & iif(i = 9, vbcrlf, "")
if i = 0 then
max = a(i)
min = a(i)
else
if a(i) < min then min = a(i)
if a(i) > max then max = a(i)
end if
sum = sum + a(i)
select case a(i)
case 0 to 59
a1 = a1 + 1
case 60 to 69
a2 = a2 + 1
case 70 to 79
a3 = a3 + 1
case 80 to 89
a4 = a4 + 1
case 90 to 100
a5 = a5 + 1
end select
next i
label1.caption = label1.caption & "最高分=" & max & vbcrlf
label1.caption = label1.caption & "最低分=" & min & vbcrlf
label1.caption = label1.caption & "平均分=" & format(sum / 20, "0.00") & vbcrlf
label1.caption = label1.caption & "0 - 59分人數:" & a1 & vbcrlf
label1.caption = label1.caption & "60 - 69分人數:" & a2 & vbcrlf
label1.caption = label1.caption & "70 - 79分人數:" & a3 & vbcrlf
label1.caption = label1.caption & "80 - 89分人數:" & a4 & vbcrlf
label1.caption = label1.caption & "90 - 100分人數:" & a5 & vbcrlf
call paixu(a)
label1.caption = label1.caption & "排序後20名學生成績:" & vbcrlf
for i = 0 to 19
label1.caption = label1.caption & a(i) & iif(i = 19, vbcrlf, ",") & iif(i = 9, vbcrlf, "")
next
end sub
private sub form_load()
label1.move 0, 0, me.width
label1.autosize = true
label1.caption = ""
end sub
private sub paixu(b() as variant)
dim i as integer, x as integer
for i = lbound(b) to ubound(b)
for j = lbound(b) to i
if b(j) < b(i) then x = b(i): b(i) = b(j): b(j) = x
next
next
end sub
2樓:匿名使用者
private sub form_load()dim s(), s1()
s = array(2, 3, 4, 5, 6)dim t, l, k
t = 1
l = 2
k = 3
s1 = test(s, t, l, k)for i = 0 to ubound(s1)msgbox s1(i)
next
end sub
function test(s(), t, l, k)dim a
redim a(ubound(s))
for i = 0 to ubound(s)a(i) = s(i) + t + l + k '
next
test = a
end function
3樓:匿名使用者
vb中,陣列本來就是以傳址方式進行傳遞呼叫的。也就是說,你這個引數s,可以是一個陣列,呼叫的時候,以一個陣列呼叫,結果會傳遞返回給呼叫處。
通過excel vba自定義了一個函式,無法把陣列傳入到函式中。
4樓:匿名使用者
只能傳單元格,然後轉陣列。如下
function mytest(rng as range)dim arr() as variant
set arr = rng.value
mytest = ubound(arr)
end function
5樓:匿名使用者
這要用paramarray的。
vba自定義函式,當引數是陣列時,該如何書寫?
6樓:匿名使用者
兩個都可以,第bai二個不能引用 單元格區du域,每個單zhi元格都是一個
dao引數,需要用逗號內分隔
第一個比較接近內容
置函式sum'
option explicit
function ssum(byval range as range) as double
dim rng as range
for each rng in rangessum = ssum + rng.valuenext rng
end function
function ssum0(paramarray arr()) as double
dim i as integer
for i = lbound(arr) to ubound(arr)if isnumeric(arr(i)) thenssum0 = ssum0 + arr(i)end if
next i
end function
7樓:表裡如一
如下:function sum0(byval rng as range) as double
dim t, r
t = 0
for each r in rng
t = t + r.value
next
sum0 = t
end function
vba中如何在宣告自定義函式之前給陣列賦值
8樓:匿名使用者
可以在bai函式中定義靜態型別
dustatic a '只能定義通zhi用型別,否則isempty 檢查不dao出來。
if isempty(a) then '這樣保證回陣列只賦值
答一次redim a(5) as string'對陣列賦值操作
end if
excel vba自定義函式如何進行陣列計算
9樓:匿名使用者
function f(myrange as range)dim myarr(1 to 5)
dim myr as range
dim i as single
i = 1
for each myr in myrangemyarr(i) = myr.value
i = i + 1
next
f = myarr(1) + myarr(2) * myarr(3) + myarr(4) + myarr(5)
end function
10樓:匿名使用者
function f(rng as range) as stringif rng.count <>5 then f="err":exit function
dim a(4) as double,b as integerdim cel as range
for each cel in rng
a(b)=val(cel.value)
b=b+1
next
f = a(0) + a(1)*a(2) + a(3) + a(4)end function
excel vba自定義函式的編寫,自定義陣列
11樓:
最難解決的就是你這種問題,不是提問題,是指揮別人怎麼做,自己說的也不是很明白
告訴你提問題只要把你現在的情況說明白,再說想要什麼結果就行了,有圖最佳。
至於過程不重要,結果才重要。
12樓:匿名使用者
如:一維陣列定義
dim a(99)
vba把這個自定義函式改寫用陣列 含有合併單元格
13樓:司馬刀劍
function 合併(b as range)dim d
set d = createobject("scripting.dictionary")
for each c in b
d(c.value) = ""
next
合併 = join(d.keys, "")set d = nothing
end function
vba自定義函式的返回值能是陣列嗎
14樓:匿名使用者
可以的。要點有兩個:一是在自定義函式中定義一個陣列來存放相關值,如dim a(2),然後對其賦值:
a(1)=5,a(2)=10,並將陣列值賦給函式。第二個要點是如何呼叫。呼叫時,需定義一個變體變數,如 dim c as variant。
假設自定義函式的函式名是 d,則呼叫可寫作
c=d(相應引數)
這時,c(1)=5,c(2)=10
15樓:三少
可以啊,可是隻能輸出第一個陣列元素
16樓:匿名使用者
當然可以的。
比如:dim arr
arr=range("a1:d10")
如何使用Photoshop的自定義形狀工具
1 開啟baips軟體,在左側工具欄中選擇du 自定形狀工具 zhi 2 單擊上方 dao形狀 中的小專三角,滑動滾動條屬選擇需要的形狀。3 單擊選擇要新增的形狀,按住滑鼠左鍵在畫布中拖動出形狀。4 單擊上方 選區 按鈕,在彈出的 建立選區 對話方塊中單擊 確定 按鈕,形狀變成選區。5 在選單欄 編...
openrocket如何自定義發動機的引數
要因 一 不按期保養要因 二 機油變質及機油濾芯不暢不同等級的潤滑油在使用過程中油質都會發生變化。車輛行駛一定里程之後,效能就會惡化,可能會給發動機帶來種種的問題。為了避免這些故障的發生,應該結合使用條件定期給汽車換油,並使油量適中,一般以機油標尺上下限之間為好。機油從機油濾芯的細孔通過時,把油中的...
c中,怎麼把陣列變成自定義函式的形參?還有,給陣列做實參的例子吧。最後,看下我這個,,顯示
你是問如bai何將陣列傳du 遞給函式吧!zhi 除了引用,變數傳遞都涉dao及到資料複製專,也就是在函屬數內要接受實參時,需要一個容器儲存傳入的值,也就是形參的作用,進入函式後為形參在棧上分配記憶體空間,然後將外部變數的值儲存到該空間,便於函式內處理,當函式退出時,釋放該形參 變數 而傳遞陣列時,...