Range对象

时间:2015-07-07 16:40:57

标签: excel vba excel-vba runtime-error

尝试计算excel中网格中是否存在某些内容,这些内容是否由于是否填充了颜色而定义(这就是我的老板想要格式化的方式)。不是VBA的专家,而且在这个循环的第二行出现错误。变量在此之前定义,并且循环中还有一堆其他东西,但我不包括它以节省空间。我很确定这个问题会很明显。

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

1 个答案:

答案 0 :(得分:1)

如果代码所在的工作表与“核心列表”不同,则只需使用.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这样松散,它将从您插入此代码的工作表中获取单元格。但是,如果您使用.Cells,则可以从With块中声明的工作表中获取它。

注意:如果x为零或更低,它将失败,工作表中没有第0列。而且,如果它太大(我相信256),你也会超出表格的限制。