當前位置:首頁 » 編程軟體 » vba編譯錯誤數組維度已定義

vba編譯錯誤數組維度已定義

發布時間: 2023-10-24 18:12:51

Ⅰ vb,求問一個小問題,這個代碼運行以後,出現一個「編譯錯誤:缺少數組或者用戶定義類型」這是怎麼回事

.

我覺得你寫的有些不太妥的地方

1,arr1=Array(1,2,3,4)這個是用來定義數組的下標用的,不是用來賦值的.我這樣寫,定義的就是一個4維數組.你現在只需要一維四個元素,所以只要arr1=array(4)就OK了.

2,數組賦值應該像樓上那位仁兄一樣,

3,傳值,為什麼要加小括弧,我印象中直接把變數名放入括弧就OK了?

4,我用word的VBA測試的,看不到print結果,所以改了msgbox.

5,VB已死,沒必要研究了,如果想學桌面編程,試下其它的吧.比如C,C++,C#,java之類

Ⅱ VBA子函數輸入是數組該怎麼寫提示錯誤(編譯錯誤:類型不匹配,缺少數組或用戶定義類型)


把LUDCMP的定義貼出來看看。
——————————
你還是沒有把LUDCMP的定義貼出來啊。

我估計是你的LUDCMP過程參數寫得有問題。
Sub LUDCMP(A(), N, INDX(), D)
如果你像上面那麼寫就肯定有問題
你要把類型指定清楚:
Sub LUDCMP(A() as Double, N as Integer, INDX() as Integer, D as Integer)
--------------------------
哦,你那樣定義的啊。

我發現貌似是你的一個輸入錯誤:
Call LUDCMP(al#(), N, INDX%(), p)
這里的al#沒有定義。。。綜觀你的整個函數,沒找到al的定義,是你不小心把a#()打成al#()了嗎?

--
另外建議樓主以後所有變數在定義時都明確指明類型以減少出錯的幾率。
還有就是INDX%()這種寫法已經不推薦了,應該用INDX() As Integer。其它的依此類推。。

Ⅲ Excel VBA編譯錯誤:類型不匹配:缺少數組或用戶定義類型

FunctionA_V_E(ary()AsVariant)
arr=Application.Transpose(Application.Transpose(ary))
Dimsumtemp
ForEachxInarr
n=n+1
sumtemp=sumtemp+x
Next
A_V_E=sumtemp/n
EndFunction

FunctionSt_De(ary()AsVariant)
Dimarr()
arr=Application.Transpose(Application.Transpose(ary))
DimX_ave
X_ave=A_V_E(arr)
Dimsum_x
ForEachxInarr
n=n+1
sum_x=sum_x+(x-X_ave)^2
Next
St_De=Sqr(sum_x/(n-1))
EndFunction

Subtest2()
Dimarr()
Dimresault
arr=Array(1,2,3,4)
resault=St_De(arr)
Debug.Printresault
EndSub

熱點內容
法哪科編程 發布:2025-09-17 23:20:03 瀏覽:569
摩斯密碼怎麼敲漢字 發布:2025-09-17 23:11:05 瀏覽:361
標記c語言 發布:2025-09-17 22:28:38 瀏覽:593
編譯原理語義檢查 發布:2025-09-17 22:26:07 瀏覽:662
uint哪個配置有行車記錄儀 發布:2025-09-17 22:15:38 瀏覽:431
設計php框架 發布:2025-09-17 21:50:05 瀏覽:179
sql統計條數 發布:2025-09-17 21:49:51 瀏覽:710
javastatic和 發布:2025-09-17 21:35:35 瀏覽:367
星星演算法 發布:2025-09-17 21:34:19 瀏覽:142
杭州版式文件伺服器地址怎麼填寫 發布:2025-09-17 21:17:42 瀏覽:992