Excel 为VBA中的某个范围的行(行、列)使用变量

Excel 为VBA中的某个范围的行(行、列)使用变量,excel,vba,Excel,Vba,我有一个名为processRowBegin的全局变量,它包含进程开始时的行号。我还有一个名为processRowEnd的全局变量,它包含进程结束时的行号 我要做的是为活动工作表上的两列C和E创建一个图表,其中要打印的选定行的范围是从processRowBegin到processRowEnd。我遇到的问题是,我不知道如何在(row,column)语法中使用带有变量的范围。我已经研究过这个问题,到目前为止还没有找到有效的解决方案。我首先尝试使用(row,column)语法和(row,column)中

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

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

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

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

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

您可以这样做:

Range("C" & processRowBegin & ":C" & processRowEnd).Select
范围采用两个单元格或一个字符串来表示范围

要通过两个单元格执行此操作:

Range(Cells(processRowBegin,3),Cells(processRowEnd,3)).Select
几点注意:

  • 人们应该避免使用select,只需对单元格执行所需操作即可。有关如何避免使用select的更多信息,请参阅此

  • 应始终将所有范围对象限定为其父工作表。如果使用单元格(),也需要限定它们

  • 范例

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

    您通常希望避免将单元格地址串接为字符串。@ScottCraner的答案中的第二种方法(假设符合工作表的要求)要好得多。好的,这很有意义。感谢所有帮助回答此问题的人。我现在将对其进行测试,以确保其工作正常。