在(行,列)中使用行变量作为VBA

时间:2016-12-06 20:36:07

标签: excel excel-vba vba

我有一个名为processRowBegin的全局变量,它包含进程开头的行号。我还有一个名为processRowEnd的全局变量,它包含进程结束的行号。

我要做的是为活动工作表上的两列C列和E列创建一个图表,其中所选行的范围是从processRowBegin到processRowEnd。我遇到的问题是我不知道如何使用带有变量的范围(行,列)语法中的行。我已经研究过这个问题,到目前为止还没有找到有效的解决方案。我尝试使用(行,列)语法,首先使用(行,列)中行的变量名称。这不起作用并导致图片中的错误[使用范围错误行的变量] [1}。

然后我尝试实现我通过其他用户的问题找到的解决方案(下面的代码),但仍然收到相同的错误。如何在VBA中实现这一目标?

Range(("C" & processRowBegin):("C" & processRowEnd)).Select
Range(("E" & processRowBegin):("E" & processRowEnd)).Select

我是Excel VBA的初学者以及编程,非常感谢帮助。这是我完成一个重要工作项目的最后一步。如果有人想查看我的整个代码,请告诉我。

1 个答案:

答案 0 :(得分:5)

你会这样做:

Range("C" & processRowBegin & ":C" & processRowEnd).Select

Range使用两个单元格或一个字符串来表示范围。

由两个单元格完成:

Range(Cells(processRowBegin,3),Cells(processRowEnd,3)).Select

一对夫妇注意到:

  1. 应该避免使用select并简单地执行单元格所需的操作。有关如何避免此问题的详细信息,请参阅此POST

  2. 应始终将所有范围对象限定为其父资料。如果使用Cells(),他们也需要合格

  3. 实施例

    With WorkSheets("Sheet1")
        .Range(.Cells(processRowBegin,3),.Cells(processRowEnd,3)).Value = .Range(.Cells(processRowBegin,5),.Cells(processRowEnd,5)).Value
    End With