回 帖 发 新 帖 刷新版面

主题:语法小问题

在VB6中遇到个小问题:

IF a=....... then b=.....
IF c=....   then d=.....
END IF    '只有一个ENDIF
.....

在调试时总是提示ENDIF没有IF 
第一次遇到时把语法的位置调整了一下,就是断句的问题,没当回事,昨天晚上再次遇到,并且语句特别简单,我就不懂了,来问问各位高手,这是怎么回事??

回复列表 (共9个回复)

沙发

不用End If

板凳

书写格式问题。if语句共有三种格式:
1、if……then……
这种格式,不能使用else子句,不需要endif。
2、if……then
   ……
   else
   ……
   endif
这种格式,条件成立时的执行语句不能写在then的后面,要另起一行。
else子句可以省略,但endif不能省略。
3、if……then
   ……
   elseif……then
   ……
   else
   ……
   endif
用法同前。

3 楼

补充:
2楼所说的第一种格式
if……then……
后面可以使用else子句,但不需要end if,格式:
if....then....else....

4 楼

谢谢秋水指正

5 楼


还是有点不明白!因为我还遇见了一次这样的事

for i=2 to n
  for j=2 to m
   if Worksheets("Sheet1").Cells(i, 2) = Worksheets("Sheet2").Cells(j, 2).Value
   then cells(n,3)=cells(j,3)
        cells(n,4)=cells(j,4)
        cells(n,5)=cells(j,5).........
                       [color=FF00FF]句子没完全正确写下来,意思明白就行[/color]   next 
next

运行后他只执行THEN后的第一句,第二和以后的就不运行,我当时只好一句一执行,后来加了ENDIF就行了

前面几位高手说下什么问题?

6 楼

你这样写应该语法错误了吧?

[quote]
Private Sub Form_Load()
    If True
    Then End
End Sub
[/quote]
语法错误,没法通过编译

7 楼

忘了说明,那个双循环是在VBA中
For i = 2 To 206
     For j = 2 To 371
      If Worksheets("Sheet2").Cells(i, 2) = Worksheets("Sheet3").Cells(j, 13).Value _
      Then Worksheets("Sheet2").Cells(i, 20).Value = Worksheets("Sheet3").Cells(j, 4)
       Worksheets("Sheet2").Cells(i, 21).Value = Worksheets("Sheet3").Cells(j, 5)
       Worksheets("Sheet2").Cells(i, 22).Value = Worksheets("Sheet3").Cells(j, 4)
     Next j
     Next i
这是原语句,意思是SHEET3中与SHEET2中某列中的一个值相同时,把SHEET3的相同值的列的那一列的数据复制到SHEET2中以方便制表和数据计算
但是我的问题还是存在,执行后THEN后第一句执行正确,第二句以后的SHEET2的应复制的数据全复制的是SHEET3最后一个J值的数据!
只加了个ENDIF后数据就正确了!
大家继续指教下哈!

8 楼

[quote]      If Worksheets("Sheet2").Cells(i, 2) = Worksheets("Sheet3").Cells(j, 13).Value _
      Then Worksheets("Sheet2").Cells(i, 20).Value = Worksheets("Sheet3").Cells(j, 4)[/quote]
等价于
[quote]      If Worksheets("Sheet2").Cells(i, 2) = Worksheets("Sheet3").Cells(j, 13).Value Then Worksheets("Sheet2").Cells(i, 20).Value = Worksheets("Sheet3").Cells(j, 4)[/quote]
"_"是连接符,连接下一行

9 楼

收到,明白
多谢指教!

我来回复

您尚未登录,请登录后再回复。点此登录或注册