我测试的时候再红色部分加了msgbox测试  但是根本就没有对话框弹出 也就是程序没有进入红色的部分
Private Sub star_Click()
'MsgBox "1111"
For j = 0 To hunm - 1
 For i = 0 To wnum - 1
 Image1(j * wnum + i).Move 65 * 15 * i, j * 65 * 15, 64, 64
'Image1(j * wnum + i).Top = j * 65 * 15
 Next
Next
'MsgBox "22222"
For i = 0 To wnum * hnum - 1 '数组的初始化
a(i) = 0
NextFor i = 0 To wnum * hnum - 1
If a(i) = 0 Then
myvalue = Int((20 * Rnd) + 1)   ' 生成 1 到 20 之间的随机数值。
'Debug.Print myvalue
'MsgBox myvalue
a(i) = myvalueDo Until a(myvalue2) = 0
myvalue2 = Int(((wnum * hnum - 1) * Rnd) + 1)
Loop
a(myvalue2) = myvalue
End If
Next'开始加载图片
For i = 0 To wnum * hnum - 1
Image1(i).Picture = LoadPicture(App.Path & "\image\pic (" & a(i) & ").jpg")
'Debug.Print a(i)Next
Form1.BackColor = &H80000009 '改变窗口背景颜色
End Sub

解决方案 »

  1.   


    Private Sub star_Click()
    'MsgBox "1111"
    For j = 0 To hunm - 1
     For i = 0 To wnum - 1
     Image1(j * wnum + i).Move 65 * 15 * i, j * 65 * 15, 64, 64
    'Image1(j * wnum + i).Top = j * 65 * 15
     Next
    Next
    'MsgBox "22222"
    For i = 0 To wnum * hnum - 1 '数组的初始化
    a(i) = 0
    NextFor i = 0 To wnum * hnum - 1
    If a(i) = 0 Then
    myvalue = Int((20 * Rnd) + 1)   ' 生成 1 到 20 之间的随机数值。
    'Debug.Print myvalue
    'MsgBox myvalue
    a(i) = myvalueDo Until a(myvalue2) = 0
    myvalue2 = Int(((wnum * hnum - 1) * Rnd) + 1)
    Loop
    a(myvalue2) = myvalue
    End If
    Next'开始加载图片
    For i = 0 To wnum * hnum - 1
    Image1(i).Picture = LoadPicture(App.Path & "\image\pic (" & a(i) & ").jpg")
    'Debug.Print a(i)Next
    Form1.BackColor = &H80000009 '改变窗口背景颜色
    End Sub
      

  2.   

    hunm,wnum是个什么变量,全局变量?调用过程时其值是什么?
      

  3.   

    hunm,wnum  是常量   按钮点击了   下面的for都成功进入了 
      

  4.   

    可以在自己的机子上面跑一下下面的代码 看看是否进入了
    Const wnum = 20 '每行的图标个数
    Const hnum = 10 '每列的图标个数
    Dim a(wnum * hnum - 1) As IntegerPrivate Sub Form_Load()
    Form1.Width = 1300 * 15
    Form1.Height = 740 * 15
    End SubPrivate Sub star_Click()
    'MsgBox "1111"
    For j = 0 To hunm - 1
    For i = 0 To wnum - 1
    Image1(j * wnum + i).Move 65 * 15 * i, j * 65 * 15, 64, 64
    'Image1(j * wnum + i).Top = j * 65 * 15
    Next
    Next
    'MsgBox "22222"
    For i = 0 To wnum * hnum - 1 '数组的初始化
    a(i) = 0
    NextFor i = 0 To wnum * hnum - 1
    If a(i) = 0 Then
    myvalue = Int((20 * Rnd) + 1)   ' 生成 1 到 20 之间的随机数值。
    'Debug.Print myvalue
    'MsgBox myvalue
    a(i) = myvalueDo Until a(myvalue2) = 0
    myvalue2 = Int(((wnum * hnum - 1) * Rnd) + 1)
    Loop
    a(myvalue2) = myvalue
    End If
    Next'开始加载图片
    For i = 0 To wnum * hnum - 1
    Image1(i).Picture = LoadPicture(App.Path & "\image\pic (" & a(i) & ").jpg")
    'Debug.Print a(i)Next
    Form1.BackColor = &H80000009 '改变窗口背景颜色
    End Sub
      

  5.   


    stop
    For j = 0 To hunm - 1
    For i = 0 To wnum - 1
    停下后F8 单步调试看看 HUNM的值 
      

  6.   


    Const hnum = 10 '每列的图标个数For j = 0 To hunm - 1
    另外lz的结贴率实在让人无语
      

  7.   

    以后请在每个模块的第一行加上Option Explicit
    就不会再提这种问题了
      

  8.   

    很明显是 hunm 这个变量写错了, 应该是 hnum.因为写错了,所以 For j = 0 To hunm - 1 这个循环根本就不会运行。为杜绝类似错误发生,应该加上 Option Explicit 。