在调试的时候正常,但是一编译就出错了,提示是"找不到vba6.dll,运行时错误'53'"
代码如下
Option Explicit
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As LongPrivate Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
    ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function
Function calc(ByVal x As String)
Dim result
ExecuteLine "dim x as double"
ExecuteLine "x= " & x
ExecuteLine "clipboard.settext x"
result = Clipboard.GetText
calc = result
Set result = Nothing
End FunctionSub suijishu()
    Dim number(3)
    Dim i
    For i = 0 To 3
        Randomize
        number(i) = Int((9 * Rnd) + 1)
    Next
    Label3.Caption = number(0)
    Label4.Caption = number(1)
    Label5.Caption = number(2)
    Label6.Caption = number(3)
    Label8.Caption = number(0) & "  " & number(1) & "  " & number(2) & "  " & number(3)
    
End Sub
Private Sub Command1_Click()
suijishu
jisuan
End SubPrivate Sub Command2_Click()
    Text1 = ""
End Sub
Function jisuan()
    Dim i, j, k, l, x, y, z
    Dim num(3)
    num(0) = Label3.Caption
    num(1) = Label4.Caption
    num(2) = Label5.Caption
    num(3) = Label6.Caption
    For x = 0 To 3
    For y = 0 To 3
    For z = 0 To 3
    For i = 0 To 3
    For j = 0 To 3
    For k = 0 To 3
    For l = 0 To 3
    If i <> j And i <> k And i <> l And j <> k And j <> l And l <> k Then
    number num(i), num(j), num(k), num(l), x, y, z
        If number(num(i), num(j), num(k), num(l), x, y, z) = 10 Then
            Exit Function
        End If
    End If
    Next
    Next
    Next
    Next
    Next
    Next
    Next
End Function
Function number(a, b, c, d, x, y, z)
    Dim fuhao(3)
    Dim shizi(8)
    Dim i, result
    fuhao(0) = "+"
    fuhao(1) = "-"
    fuhao(2) = "*"
    fuhao(3) = "/"
    shizi(0) = CStr(a) & fuhao(x) & CStr(b) & fuhao(y) & CStr(c) & fuhao(z) & CStr(d)
    shizi(1) = "(" & CStr(a) & fuhao(x) & CStr(b) & fuhao(y) & CStr(c) & ")" & fuhao(z) & CStr(d)
    shizi(2) = CStr(a) & fuhao(x) & "(" & CStr(b) & fuhao(y) & CStr(c) & ")" & fuhao(z) & CStr(d)
    shizi(3) = CStr(a) & fuhao(x) & CStr(b) & fuhao(y) & "(" & CStr(c) & fuhao(z) & CStr(d) & ")"
    shizi(4) = "((" & CStr(a) & fuhao(x) & CStr(b) & ")" & fuhao(y) & CStr(c) & ")" & fuhao(z) & CStr(d)
    shizi(5) = "(" & CStr(a) & fuhao(x) & "(" & CStr(b) & fuhao(y) & CStr(c) & "))" & fuhao(z) & CStr(d)
    shizi(6) = CStr(a) & fuhao(x) & "((" & CStr(b) & fuhao(y) & CStr(c) & ")" & fuhao(z) & CStr(d) & ")"
    shizi(7) = CStr(a) & fuhao(x) & "(" & CStr(b) & fuhao(y) & "(" & CStr(c) & fuhao(z) & CStr(d) & "))"
    shizi(8) = "(" & CStr(a) & fuhao(x) & CStr(b) & ")" & fuhao(y) & "(" & CStr(c) & fuhao(z) & CStr(d) & ")"
    For i = 0 To 8
        result = calc(shizi(i))
        If result = 24 Then
            Text1 = shizi(i)
            number = 10
            Exit Function
        End If
    Next
End Function那里有问题?

解决方案 »

  1.   

    都没有问题,你的程序写的太BT了,只能用这2字形容我测试过了
    万一text不为大0的数字就一直死循环你这代码谁运行谁的机器就。唉
      

  2.   

    提示"找不到vba6.dll,运行时错误'53'"
    -----------------------------------
    这是因为“vba6.dll”默认位于VB文件夹中,IDE环境下,可找到,可编译后,是找不到的,可将vba6.dll复制到系统文件夹或与exe相同的文件夹中,可解此问题
    不过后面又会有新问题,我可以肯定你是从网上某处抄来的ExecuteLine函数,这是一个只能在IDE环境下运行的函数,在本论坛中早就讨论过vba6.dll的问题,离开IDE,编译后运行就会出现非法操作。
    建议换为引用Microsoft Script Control 1.0,可解决。附:你应该学会用指定数据类型优化一下你的代码,现在这样写太慢!