VBA可以执行的操作数量有限制吗?

受到我在网上看到的一个难题的启发,既然我是一个VBA新手,我认为这可能是一个有趣的练习,帮助我学习如何使用For循环,通过使用powershell方法来search解决scheme。

这导致了创造一个怪胎,需要一段时间的部分运行,实际上不会完全运行。 所有的代码打算做的是打印3列的有效组合

 Private Sub CommandButton1_Click() Dim j As Long Dim abc As String Dim def As String Dim ghi As String j = 1 For a = 1 To 9 For b = 1 To 9 For c = 1 To 9 For d = 1 To 9 For e = 1 To 9 For f = 1 To 9 For g = 1 To 9 For h = 1 To 9 For i = 1 To 9 'Line breaks included for ease of reading If a = b Or a = c Or a = d Or a = e Or a = f Or a = g Or a = h Or a = i Or b = c Or b = d Or b = e Or b = f Or b = g Or b = h Or b = i Or c = d Or c = e Or c = f Or c = g Or c = h Or c = i Or d = e Or d = f Or d = g Or d = h Or d = i Or e = f Or e = g Or e = h Or e = i Or f = g Or f = h Or f = i Or g = h Or g = i Or h = i Then Else abc = a & b & c def = d & e & f ghi = g & h & i ThisWorkbook.Sheets("Sheet1").Cells(j, 1).Value = abc ThisWorkbook.Sheets("Sheet1").Cells(j, 2).Value = def ThisWorkbook.Sheets("Sheet1").Cells(j, 3).Value = ghi j = j + 1 End If Next i Next h Next g Next f Next e Next d Next c Next b Next a End Sub 

这显然涉及很多简单的操作,并导致各种(不响应)消息,或者它只是不运行。 点击“开始”之前是否有可能告诉我们情况是这样的?

我的工作是让我工作,并join,在其他电子表格上执行大量操作的表单,每个表单上可能包含数十万个数据项。 继续为这些文件添加function可能会也可能不可持续,所以我需要知道如何在我陷入进一步发展之前知道的。

在操作的数量/数量方面,对于VBA可以做什么有一个严格的限制? 有没有一种工具可以估计macros观实际运行到完成的可行性? 工业中常用的启发式?

基本上,存在哪些方法或工具来告知macros或macros系列的需求是否会超出可用内存?

谢谢

在开始之前,你应该尝试做一些math运算。

你的代码每次产生9个事物的所有排列。 在你开始之前,你知道这将会填满362880行。 所以代码应该工作。

另一个问题是需要多less时间,这是最有效的方法。

不是一个答案,但可以通过循环数字来解决? 沿着这些线路,是检查第一个字符与其余的

 Dim l As Long Dim i As Integer For l = 11111111 To 99999999 For i = 2 To 8 DoEvents If (Mid(l, i, 1) <> Mid(l, 1, 1)) Then Debug.Print l End If Next i Next l