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

aqu*_*les 0 excel vba excel-vba

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

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

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

Range(("C" & processRowBegin):("C" & processRowEnd)).Select
Range(("E" & processRowBegin):("E" & processRowEnd)).Select
Run Code Online (Sandbox Code Playgroud)

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

Sco*_*ner 5

你会这样做:

Range("C" & processRowBegin & ":C" & processRowEnd).Select
Run Code Online (Sandbox Code Playgroud)

范围采用两个单元格或字符串来表示范围.

要通过两个单元格来完成:

Range(Cells(processRowBegin,3),Cells(processRowEnd,3)).Select
Run Code Online (Sandbox Code Playgroud)

几个笔记:

  1. 应该避免使用select并简单地按照细胞进行操作.有关如何避免它的更多信息,请参阅此POST

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

With WorkSheets("Sheet1")
    .Range(.Cells(processRowBegin,3),.Cells(processRowEnd,3)).Value = .Range(.Cells(processRowBegin,5),.Cells(processRowEnd,5)).Value
End With
Run Code Online (Sandbox Code Playgroud)