1樓:匿名使用者
是把**寫在子過程、函式過程或屬性過程外而發生的錯誤。
在過程外無效:
該語句必須發生在子過程、函式過程或屬性過程(property get、property let 和
property set)內部。這個錯誤的起因與解決方法如下所示:
*一個可執行的語句,如 static 或 redim,出現在模組級別中。
在模組級中 static 是不需要的,因為所有的模組級變數都是靜態的。在模組級中用 dim 來代替
redim。想要在模組級中建立動態陣列,請用
dim 加空括弧來宣告它。
注意 在模組級只能使用註釋與宣告性語句,例如
const、declare、deftype、dim、option base、option
compare、option explicit、option
private、private、public 和
type。子過程、函式過程和屬性過程語句發生在它們的過程體之外,但在過程內宣告。
2樓:匿名使用者
無效外部過程的原因和解決如下:
1,區域性變數不能直接放在通用**裡面,要放在過程裡面。
比如dim a as integer
private sub command1_click()a = 4
b = 6
end sub
一般的語句如 a=4 寫在 private sub 裡面,才可用;
如果把位置調換下:
dim a as integer
a = 4
private sub command1_click()a = 4
b = 6
end sub
上面的a=4是無效的外部過程
若在調換位置:
a = 4
private sub command1_click()b = 6
end sub
變數移動到**視窗的最上方,為定義全域性變數。
若再稍加改動:
option explicit
dim a as integer
private sub command1_click()a = 4
b = 6
end sub
是窗體或模組級變數
2、呼叫的sub沒有定義,且不是vb自帶的可能是你呼叫了一個未新增的函式或子過程。
3、變數不能在通用區域賦值,必須新增一個過程,定義也必須按規則,否則為變體(variant)而非你所定義的變數。
vb中編譯錯誤,無效外部過程,怎麼解決。
3樓:網海1書生
vb是事件驅動的。語句和命令必須被包含在過程或函式中。通用區域除了放置定義語句,不能放置其他任何語句。所以
num1 = 0
num2 = 0
strnum1 = ""
strnum2 = ""
fristnum = true
這五行你放錯地方了,你可以把他們放到form_load事件中:
private sub form_load()num1 = 0
num2 = 0
strnum1 = ""
strnum2 = ""
fristnum = true
end sub
但你的**還有好多錯誤,粗看了下不下10處,而且是很致命的錯誤,是無法執行的。你還是一點一點搞清楚了再說吧。
4樓:匿名使用者
1、else '非初賦值
strnum1=strnum1+
str (index)
else 後面的語句應該是在一行的
2、除非是常量,任何賦值語句都必須在某個過程內
5樓:匿名使用者
你太粗心了。
-----------------------......................
text1.text = strnum1 '顯示end select
end sub
........................
這個地方的兩個end語句是不是多餘的?這樣導致後面的語句被認為是過程定義外的了。
你再仔細看看
-----------------------
vb程式設計問題 執行後 編譯錯誤:無效外部過程.
6樓:匿名使用者
private sub command1_click()label1.caption = ""
for a = 0 to 20
for b = 0 to 33
c = 100 - a - b
if 15 * a + 9 * b + c = 300 thenlabel1.caption = label1.caption & "公雞母雞小雞各" & a & "," & b & "," & c & " 只 " & vbcrlf 'vbcrlf是在同一行的
end if
next
next
end sub
為什麼vb老說無效外部過程?
7樓:匿名使用者
應該寫在過程中的**寫到了過程外。
在過程外無效
該語句必須發生在子過程、函式過程或屬性過程(property get、property let 和
property set)內部。這個錯誤的起因與解決方法如下所示:
一個可執行的語句,如 static 或 redim,出現在模組級別中。
在模組級中 static 是不需要的,因為所有的模組級變數都是靜態的。在模組級中用 dim 來代替
redim。想要在模組級中建立動態陣列,請用
dim 加空括弧來宣告它。
注意 在模組級只能使用註釋與宣告性語句,例如
const、declare、deftype、dim、option base、option
compare、option explicit、option
private、private、public 和
type。子過程、函式過程和屬性過程語句發生在它們的過程體之外,但在過程內宣告。
例在窗體的通用部分寫了print a就會出現錯誤提示對話方塊。且錯誤**高亮。
8樓:匿名使用者
比如下面的簡單程式
---------------------------------dim a as integer
private sub command1_click()a = 3
b = 4
end sub
----------------------------------一般的語句如 a=3 要寫在 private sub 裡面,才可用如果寫成
-----------------------------------
dim a as integer
a = 3
private sub command1_click()a = 3
b = 4
end sub
------------------------------------
上面的a=3就是無效的外部過程
你把游標移動到**視窗的最上方,就是定義全域性變數的地方,
c語言編譯錯誤
void main 自己可以優化下 的。 倒數第二行多了個括號 default printf error 應該是main break case break case break case break default printf error 1個錯誤,1個不妥 錯誤 default printf e...
請高手給專業的解釋 VB執行「編譯錯誤,找不到工程或庫」
試一下系統還原,實在不行就重灌vb,不過最好是從其他安裝vb的點到上覆制過來 應該是複製vb根目錄下的 tlb檔案 是引用的某個控制元件除了問題,請在 部件 選單中檢視,看是否有引用的控制元件後面出現了 missing 的字樣,解決方法是,找到該控制元件 如某某.ocx之類 重新註冊並新增引用即可 ...
keil的編譯錯誤 error c129 missingbefore
元飛珍 你的錯誤 是 error c129 這是一個c語言方面的語法錯誤,說明你的檔案被儲存為c檔案 檔名為.c字尾 我用你這段程式放在keil編譯器中試驗過,當程式儲存為c檔案並編譯時,會出現如你所示的error c129的錯誤且指向程式的第一句 處 若將檔案另存為彙編檔案 檔名為.asm字尾 再...