VB中編譯錯誤,無效外部過程,怎麼解決

時間 2022-03-12 02:00:02

1樓:網海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處,而且是很致命的錯誤,是無法執行的。你還是一點一點搞清楚了再說吧。

2樓:匿名使用者

1、else '非初賦值

strnum1=strnum1+

str (index)

else 後面的語句應該是在一行的

2、除非是常量,任何賦值語句都必須在某個過程內

3樓:匿名使用者

你太粗心了。

-----------------------......................

text1.text = strnum1 '顯示end select

end sub

........................

這個地方的兩個end語句是不是多餘的?這樣導致後面的語句被認為是過程定義外的了。

你再仔細看看

-----------------------

vb 編譯錯誤:無效外部過程 5

4樓:匿名使用者

是把**寫在子過程、函式過程或屬性過程外而發生的錯誤。

在過程外無效:

該語句必須發生在子過程、函式過程或屬性過程(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。子過程、函式過程和屬性過程語句發生在它們的過程體之外,但在過程內宣告。

5樓:匿名使用者

無效外部過程的原因和解決如下:

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編譯錯誤無效外部過程怎麼解決呀? 5

6樓:匿名使用者

把這些**放到一個過程或函式裡去。

比如放到form_click()或一個command1_click()

或自己建立一個過程,比如:

sub a()

...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就是無效的外部過程

你把游標移動到**視窗的最上方,就是定義全域性變數的地方,

vb無效外部過程

9樓:匿名使用者

是把**寫在子過程、函式過程或屬性過程外而發生的錯誤。

在過程外無效:

該語句必須發生在子過程、函式過程或屬性過程(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。子過程、函式過程和屬性過程語句發生在它們的過程體之外,但在過程內宣告。

10樓:仙曼容鄔琦

你不會是直接放在通用**裡面吧?

放在過程裡面,比如這樣

private

subform_click()f1=

0f2=1

print

f1,f2i=

3dof3=

f2+f1print

f3f1=f2

f2=f3i

=i+1

loop

while

i<50end

sub左擊一下窗體就開始執行了

vb程式設計問題 執行後 編譯錯誤:無效外部過程.

11樓:匿名使用者

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 編譯錯誤,vb 沒執行也會出錯?

private sub command1 click index as integer select case index case 0 val text1 val text2 case 1 val text1 val text2 case 2 val text1 val text2 case 3 ...

vb中找不到工程或庫提示編譯錯誤怎麼回事

網海1書生 你的電腦沒有裝dao資料庫引擎。建議改用ado。 沉木雍容 選單欄 工程 引用 選擇紅色相 載飛翮羿茜 如果你使用的已經是vb的企業版,你可採取新建資料工程,再一一新增各窗體檔案和其它相關檔案.再編譯就可能不出現提示找不到 工程或庫 農村人天枰 開啟excel vb 時彈出編譯錯誤的需要...

c語言編譯錯誤c1010該怎麼解決

在編譯vc 6.0是,出現fatal error c1010 unexpected end of file while looking for precompiled header directive 的錯誤.解決方法 1 如果發生錯誤的檔案是由其他的c 檔案新增進入當前工程而引起的,則alt f7...