2016-12-06 39 views
0

我有一個名爲processRowBegin的全局變量,其中包含進程開始的行號。我還有一個名爲processRowEnd的全局變量,它包含進程結束的行號。在(行,列)中爲VBA中的範圍使用變量

我想要做的是在活動工作表上爲列C和E創建一個圖表,其中要繪製的選定行的範圍是從processRowBegin到processRowEnd。我遇到的問題是我不知道如何在(行,列)語法中爲行使用範圍和變量。我研究了這個問題,到目前爲止還沒有找到可行的解決方案。我首先嚐試使用(行,列)語法和(行,列)中行的變量名稱。這不起作用,並導致圖片中的錯誤[使用變量作爲範圍錯誤中的行] [1}。

然後,我試圖實現一個解決方案(代碼如下),我通過另一個用戶的問題找到但仍然收到相同的錯誤。在VBA中如何去做這件事?

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

我是Excel VBA的初學者以及編程,希望能幫助。這是我完成一項重要工作項目的最後一步。如果有人想查看我的整個代碼,請告訴我。

+0

你一般要避免連接的單元格地址爲字符串。 @ ScottCraner答案中的第二種方法(假設有工作表限定)要好得多。 – Comintern

+0

好吧,這很有道理。感謝所有幫助解答此問題的人。我現在要測試它以確保它能正常工作。 – aquarules

回答

5

你會做這種方式:

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

範圍從以下兩個細胞或字符串來表示範圍。

要由兩個單元做:

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

一對夫婦的注意事項:

  1. 應該避免使用select,只是做的是期望與細胞。有關如何避免它的更多信息,請參閱POST

  2. 應該始終將所有範圍對象限定到其父頁。如果使用單元格()也同樣需要資格

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