Excel VBA问题1004

我有一个关于Excel VBA的小问题。 在下面的脚本中,我得到了一个错误1004在行:ActiveSheet.Cells(行,0).Text =元素(我),以及可能下面的行。 任何帮助将不胜感激!

Sub Mogelijkheden() Workbooks("Model-v6-final-test_macro_2.xlsm").Sheets("Variaties").Activate ActiveSheet.Activate Dim elements(3) As Variant elements(0) = ActiveSheet.Cells(3, 2).Text elements(1) = ActiveSheet.Cells(4, 2).Text elements(2) = ActiveSheet.Cells(5, 2).Text Dim length As Integer length = UBound(elements) - LBound(elements) + 1 Dim i As Integer Dim j As Integer Dim k As Integer Dim x As Integer Dim y As Integer Dim z As Integer Dim c As Integer Dim b As Integer Dim v As Integer Dim n As Integer Dim row As Integer row = 10 'Now, "print" the combinations by looping through your array For i = 0 To length For j = 0 To length For k = 0 To length For x = 0 To length For y = 0 To length For z = 0 To length For c = 0 To length For b = 0 To length For v = 0 To length For n = 0 To length ActiveSheet.Cells(row, 0).Text = elements(i) ActiveSheet.Cells(row, 1).Text = elements(j) ActiveSheet.Cells(row, 2).Text = elements(k) ActiveSheet.Cells(row, 3).Text = elements(x) ActiveSheet.Cells(row, 4).Text = elements(y) ActiveSheet.Cells(row, 5).Text = elements(z) ActiveSheet.Cells(row, 6).Text = elements(c) ActiveSheet.Cells(row, 7).Text = elements(b) ActiveSheet.Cells(row, 8).Text = elements(v) ActiveSheet.Cells(row, 9).Text = elements(n) row = row + 1 Next n Next v Next b Next c Next z Next y Next x Next k Next j Next i End Sub 

将长度分配更改为:

length = ubound(elements) - 1

另外,你想要:

ActiveSheet.cells(row, 1).value = elements(i)

您不能写入文本属性

 ActiveSheet.Cells(row, 0).Text = elements(i) 

excel中没有第0列。 你必须从第一列开始,然后到第十列。

.Text也是范围对象的只读属性。 改用.Formula

一旦你解决了这些问题,你会发现你的循环过高(你的Length = 4 ,但它应该是=3 ,你的循环应该只是0到2)。

编辑 :即使一旦你解决这些,你会有更多的问题。 我不会把它们全部拿走,但可以说3 ^ 10 = 59,049,这可能会造成小数值数据types的问题。