2

我正在尝试编写一些 vba 来打印满足以下约束的值:

b * k = t * k 

lambda = r * (k - 1) / (t - 1), 其中(t - 1) >= (k - 1)&lambda必须是整数。

这是算法:

Sub BIBDs()

Dim t, b, k, r As Integer
Dim lambda As String

For t = 2 To 50
    For b = 2 To 20
        For r = 1 To 20
            For k = 3 To 5
                If b * k = t * k & (t - 1) >= (k - 1) Then
                lambda = r * (k - 1) / (t - 1)
                    If lambda = Int(lambda) Then
                        Debug.Print t, b, r, k, lambda
                    End If
                End If
            Next k
        Next r
    Next b
Next t

End Sub

“立即”窗口中没有打印任何内容。我不确定算法或我的打印方法有问题。具体来说,我不确定我是否正确地检查了 lambda 是一个整数。

4

1 回答 1

2

尝试

If b * k = t * k And (t - 1) >= (k - 1) Then

代替

If b * k = t * k & (t - 1) >= (k - 1) Then

VBA 中的& 运算符与逻辑 And 运算符不同:https ://msdn.microsoft.com/en-us/library/wfx50zyk.aspx

于 2015-09-21T15:05:47.117 回答