vb顯示缺少if編譯錯誤
⑴ 為什麼我在VB中輸入一段程序,顯示的是編譯錯誤,類型不匹配呢
Function tucengshu(y1 As Double, x0 As Double, y0 As Double, hd() As Double) As Double
Dim x() As Double, y() As Double
R = Sqr(x0 * x0 + y0 * y0)
a = 1
b = -2 * x0
c = x0 * x0 + y1 * y1 - 2 * y0 * y1 + y0 * y0 - R * R
d = b * b - 4 * a * c
x = (-b + Sqr(d)) / (2 * a)'--------------------1此處錯誤:x 應是個數組
For i = 1 To 100
x(i) = (x / 1000) * (i)『--------------------------2此處錯誤:x 應是個數組
Next i
For i = 1 To 1000
a = 1
b = -2 * y0
c = y0 * y0 + x(i) * x(i) - 2 * x0 * x(i) + x0 * x0 - R * R
d = b * b - 4 * a * c
y(i) = (-b - Sqr(d)) / (2 * a)
Next i
lowy = y(1)
For i = 1 To 1000
If m > y(i) Then'--------------3此處錯誤:if...then....使用不合法
m = y(i)
Next i
c = x0 * x0 + lowy * lowy - 2 * y0 * lowy + y0 * y0 - R * R
d = b * b - 4 * a * c
lowx = (-b + Sqr(d)) / (2 * a)
For i = 1 To n
tuchengshu = i
If hd(i + 1) <= lowy And lowy < hd(i) Then'--------------4此處錯誤:if...then....使用不合法
Exit For
Next i
End Function
Private Sub command1_click()
Dim y1 As Double, x0 As Double, y0 As Double, hd() As Double, n As Integer
y1 = InputBox("請輸入y1的值", "y1")
x0 = InputBox("請輸入x0的值", "x0")
y0 = InputBox("請輸入y0的值", "y0")
n = InputBox("請輸入土層數", "土層數")
For i = 1 To n
ReDim hd(i)
hd(i) = InputBox("請輸入第" & i & "層土的頂標高", "頂標高")
Next i
Print "土層數為" & tucengshu(y1, x0, y0, hd())
End Sub
--------------------------------------- 分析------------------------
1、2、從內容上看X應是個單一的變數(本人理解),而不是個數組變數。
解決方法:另外用一個變數名,如 e
3、4、if....then....使用方法:
一類:if .... then .....
如:
if a>b then b=a
二類:if.....then......end if
如:
if a>b then
b=a
end if
三類(請自學)
解決方法:
3、
If m > y(i) Then
m = y(i)
修改為:
If m > y(i) Then m = y(i)
4、
If hd(i + 1) <= lowy And lowy < hd(i) Then
Exit For
修改為:
If hd(i + 1) <= lowy And lowy < hd(i) Then Exit For
⑵ VB程序出錯,else 沒有 if
編寫程序要把代碼錯落一下就可以避免出現這樣的問題了。
On Error GoTo 11下面的那個語句:
If ... Then GoTo 11
cmdenter.Enabled = False
Exit Sub
Else
把GoTo 11去掉。
If ... Then GoTo 11本身就是一條完整的語句,不能再Else的。
⑶ vb 為什麼運行總是提示「編譯錯誤:endif沒有if塊」
仔細看
Do Until f >= a
... ...
... ...
後邊少東西
⑷ VB問題,錯誤的顯示是:編譯錯誤 塊if 沒有end if.
Private Sub Command1_Click()
Dim a As String
a = Text1.Text
If a = "辦公" Then
MsgBox "成為辦公專家"
ElseIf a = "網站" Then
MsgBox "成為網站設計師"
ElseIf a = "網路" Then
MsgBox "成為網路工程師"
Else
MsgBox "沒有你要的專業"
end if '---->這里要添加
End Sub
⑸ VB編譯錯誤 else 沒有if 但是明明寫了if
更改方法一:
Private Sub command1_Click()
If Val(Text1) < 40 Or Val(Text2) < 40 Or Val(Text3) < 40 Then
Text4 = "不合格"
ElseIf Val(Text1) < 60 Or Val(Text2) < 60 Or Val(Text3) < 60 Then Text4 = "達標"
Else
Text4 = "合格"
End If
Text5 = Format(((Val(Text6) + Val(Text7) + Val(Text8)) / 3), "00.0")
End Sub
更改方法二:要是我的話就會是這樣寫的。
Private Sub command1_Click()
If Val(Text1) < 40 Or Val(Text2) < 40 Or Val(Text3) < 40 Then
Text4 = "不合格"
ElseIf Val(Text1) < 60 Or Val(Text2) < 60 Or Val(Text3) < 60 Then
Text4 = "達標"
Else
Text4 = "合格"
End If
Text5 = Format(((Val(Text6) + Val(Text7) + Val(Text8)) / 3), "00.0")
End Sub
⑹ 向高手求教vb程序運行總是說缺少if或else或elseif或end或endif或const但是在c語言上可以運行 怎麼改才可以
vb的if要then的,endif也是必須的。printf 叫print,還不用加括弧。代碼不是從main開始的(你願意的話也可以,不過最好弄個窗體才能看到 ),而是放到窗體的事件里。大哥這個移植太神奇了,這要是能成功,所有的C程序員搖身一變,就成了vb高手(不過除了資料庫什麼的,好像用vb的地方不多)。
給你個示例,你可以先照著這個思路改完你這個程序,別的再說吧。
做下面的實例以前,一定要在vb6.0裡面建立一個工程,然後打開默認的那個窗體的代碼窗口,貼上下面的代碼就好。運行了單擊一下窗口,就可以看到各種效果了。
private sub form_click()
'這個是注釋符號,等同於c++的//注釋符,是負責行注釋的
dim x as double, y as double '這個是變數定義語句,定義兩個double類型變數
x=inputbox("請輸入x: 「,"變數輸入窗體",0) '這個是輸入數據的對話框,第一個是提示語,第二
『個是對話框的標題,第三個是默認值
y=inputbox("請輸入y: ","變數輸入窗體",0) '同上面
x=log(x)
y=log(y)
if x>0 AND x<10 then
'隨便做些什麼吧
elseif x>=10 then
'再隨便做些什麼吧
elseif y<>10 then '這個判斷的意思是y不等於10
'還是隨便做些什麼吧
endif
me.print "就這些了,需要其他知識借本書吧" '這個是輸出消息的語句,是列印到窗體上的
end sub
⑺ vb 編譯錯誤 else沒有if
按照你程序的邏輯:
If tempStr = 0 Then Call Command1_Click
這個地方應該寫成:
If tempStr = 0 Then
Call Command1_Click
不然If語句不好配套啦
⑻ vb 實現累加的一段代碼: 怎麼無法運行說 編譯錯誤 else 缺少if 該怎麼改啊
Private Sub Command1_Click()
Dim m, n, k, s As Single
m = Val(Text1.Text)
n = Val(Text2.Text)
k = Val(Text3.Text)
s = 0
If k = 0 Then
Label6.Caption = "步長為零錯"
Else
For i = m To n Step k
s = s + i
Next i
Label6.Caption = Str$(s)
End If
End Sub
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Label6.Caption = ""
Text1.SetFocus
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
⑼ vb 編譯錯誤else 沒有if
else前面少了循環結束next i
Dim cd As Integer
If IsNumeric(Text1.Text) Then
cd = Len(Text1.Text)
For i = 1 To cd
j = Mid(Text1.Text, i, 1)
Select Case j
Case "1": Text1.Text = Text1.Text + 壹
Case "2": Text1.Text = Text1.Text + 貳
Case "3": Text1.Text = Text1.Text + 叄
Case "4": Text1.Text = Text1.Text + 肆
Case "5": Text1.Text = Text1.Text + 伍
Case "6": Text1.Text = Text1.Text + 陸
Case "7": Text1.Text = Text1.Text + 柒
Case "8": Text1.Text = Text1.Text + 扒
Case "9": Text1.Text = Text1.Text + 玖
Case "0": Text1.Text = Text1.Text + 零
End Select
Next i
Else
MsgBox "請輸入數字!", "0", "錯誤"
Text1.SetFocus
End If
⑽ vb編程計算中 if 語句塊的語法問題 運行時提示「endif缺少if語句塊」
請給你的代碼加上注釋,保持好正確的縮進,以及:給你的for加上next 想要完美可以在next後面加上是結束 哪一個for。另外,exit for是退出循環的命令,不是確定for循環邊界的命令。所以,你的錯誤在for沒有足夠的next