excel - 使用 Do While 循环而不是使用立即窗口将值打印到工作表

标签 excel algorithm vba do-while

我了解到“立​​即窗口”最多只能打印 199 行值。有没有一种简单的方法可以将以下算法生成的值打印到工作表单元格?具体来说,我不确定 do while 循环是否是最有效的方法。我通常处理工作表上已经存在的数据,并且只指定要运行的循环,直到最后一行数据。由于最外层循环从 t=2 运行到 50,我不太确定如何格式化最内层循环来运行,直到算法生成所有可能的值。正如所写,宏花费的时间太长,我没有等到它停止。该算法最多不应生成超过一千行的数据。

For t = 2 To 50
    For b = 2 To 20
        For r = 1 To 20
            For k = 3 To 7
                If t * k = b * k Then
                lambda = r * (k - 1) / (t - 1)
                    If lambda = Int(lambda) Then
                        Do While t < 51
                        Cells(i, 1) = t
                        Cells(i, 2) = b
                        Cells(i, 3) = k
                        Cells(i, 4) = r
                        Cells(i, 5) = lambda
                        Debug.Print t, b, k, r, lambda
                        i = i + 1
                        Loop
                    End If
                End If
            Next k
        Next r
    Next b
Next t

最佳答案

正如蒂姆和我所说,不需要 do 循环,它会永远持续下去。因此,您需要指定行,然后让它迭代,而不是循环。

For t = 2 To 50
    For b = 2 To 20
        For r = 1 To 20
            For k = 3 To 7
                If t * k = b * k Then
                lambda = r * (k - 1) / (t - 1)
                    If lambda = Int(lambda) Then
                        I = Range("A" & Rows.count).End(xlUp).Offset(1).Row
                        Cells(I, 1) = t
                        Cells(I, 2) = b
                        Cells(I, 3) = k
                        Cells(I, 4) = r
                        Cells(I, 5) = lambda
                        'Debug.Print t, b, k, r, lambda
                        'I = I + 1

                    End If
                End If
            Next k
        Next r
    Next b
Next t

关于excel - 使用 Do While 循环而不是使用立即窗口将值打印到工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32703115/

相关文章:

vba - 在VBA中查找一个月或一年的第一天和最后一天的最简单方法

java - 寻找 DNA Java 的超序列

javascript - 如果大部分功能的执行以输入为条件,那么哪一个是更好的实现方式?

excel - Selection.EntireRow.Delete 错误,可以在行的多列中选择单元格?

excel - UDF 从通用字符串中提取特定数据

vba - 使用VBA删除数千个复选框

java - Apache POI : How to change the row which is displayed top-most in a viewer?

html - 如何使 HTML 表格可以复制粘贴到 Excel

arrays - 部分和查找/部分和集分配

excel - 将换行后的每个单词分成新行