Excel VBA 运行 Range 对象上的时间错误 1004

Excel VBA run time error 1004 on Range object

尝试计算 excel 中的网格中是否存在某些东西,这取决于它是否填充了颜色(这就是我老板想要的格式)。不是 VBA 的真正专家,并且在此循环的第二行出现错误。在此之前定义了变量,循环中还有很多其他的东西,但我没有包括它来保存 space。我很确定这里的问题很明显。

With ThisWorkbook.Worksheets("Core List")
Do While Not .Range(Cells(3, x)).Value = ""    'while current name box isn't empty

    name1 = .Range(Cells(3, x)).Value       'sets the name in the stat sheet
    ThisWorkbook.Worksheets(stat).Range(Cells(4, x - 2)) = name1

Loop
End With

如果code所在的sheet和"Core List"不一样,就用.Cells,见:

With ThisWorkbook.Worksheets("Core List")
    Do While Not .Cells(3, x).Value = ""    'while current name box isn't empty

        name1 = .Cells(3, x).Value       'sets the name in the stat sheet
        ThisWorkbook.Worksheets(stat).Cells(4, x - 2).Value = name1

    Loop
End With

1 - 如果您只需要一个单元格,则无需将 Cells 放入 Range 中。如果你像这样松散地使用 Cells,它将从你插入此代码的 sheet 中获取单元格。但是如果你使用 .Cells,你从你在 With 块中声明的 sheet 中获取它。

注意:如果x为零或更低,它将失败,sheet中没有第0列。另外,如果它太大(我相信是 256),你也会超出 sheet 的限制。