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