編譯錯誤缺少數組的原因
㈠ 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。其它的依此類推。。
㈡ vb 編譯錯誤 缺少數組
可能在全局變數那裡有一個STR的數組 這樣就和保留欄位混淆了 可以刪除它
其實 你可以簡化代碼直接用n把trim(str$(n))這一段代替了就可以
㈢ VB中編譯錯誤,類型不匹配:缺少數組或用戶定義類型
你的數組 AA( ) 和 t()
在調用那個函數FuzzyEvalution( )之前,應該用Redim 來初始化,並對數組元素賦值。
比如:
redim AA(3, 4), t(5)
AA(0,0 ) = ...... '賦值過程你自己寫
然後再:CC = FuzzyEvalution(AA(m, n), t(i))
這樣,就沒問題了。
㈣ VB中編譯錯誤,類型不匹配:缺少數組或用戶定義類型
你的數組
AA(
)
和
t()
在調用那個函數FuzzyEvalution(
)之前,應該用Redim
來初始化,並對數組元素賦值。
比如:
redim
AA(3,
4),
t(5)
AA(0,0
)
=
......
'賦值過程你自己寫
然後再:CC
=
FuzzyEvalution(AA(m,
n),
t(i))
這樣,就沒問題了。
㈤ VB打開一個工程的時候,生成.exe文件就會出現「編譯錯誤,缺少數組「的問題。
Format本來是一個VB內置的函數,你在這里卻又定義一個字元串Dim Format As String,這樣VB認為Format是字元串,不是函數了,所以Format(dayRtnDTP.Value, "yyyy-mm-dd") 這個被認為是數組,而你的Format定義的又不是數組,所以出錯。
建議定義變數時不要用內置的函數的名稱,Dim Format As String中的Format改一下就可以了。
如Dim strFormat As String 』這是VB建議的定義名稱的方法,如果是字元串,前面加str
㈥ 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之類
㈦ vb定義後的數組顯示缺少數組時什麼原因
把
ReDim y(i)
ReDim x(i)
改成
ReDim y(9)
ReDim x(9)
㈧ VB打開一個工程的時候,會出現下圖這個問題。
你那個路徑里有沒有MSCAL.OCX這個文件?
有的話還出現這樣的提示你就點開始->運行
輸入:regsvr32 F:\VB0036圖書館管理系統\源程序\MSCAL.OCX
㈨ 編譯錯誤:缺少數組
可能在全局變數那裡有一個STR的數組
這樣就和保留欄位混淆了 可以刪除它
其實 你可以簡化代碼直接用n把trim(str$(n))這一段代替了就可以
㈩ 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