2017-02-20 156 views
0

這裏有兩點需要注意。第一種:我使用For循環遍歷每一行。第二:我不知道哪一行是最後一列,每行都有數據,因此我試圖使用Range.End函數來查找它。要選擇在X行數據的最後一列,該工程的代碼是:Excel VBA - 在範圍函數中使用範圍函數

Cells(x, Range("C" & x).End(xlToRight).Column).Select 

正如你可以從上面看到的,我是從C列,行X開始,尋找與數據的最後一個單元格那一排。作爲A,B,C,D和E列的第一列,我認爲不重要。

現在我嘗試從單元格(x,3)(或列C行X)到上面最後一個單元格中的數據在x行中選擇範圍。以下代碼不起作用:

Range("Cells(x,3):Cells(x, Range("C" & x).End(xlToRight).Column)").Select 

我不知道我是否被允許使用這樣的範圍函數。該錯誤是一個編譯錯誤,指出「預期:列表分隔符或)」,它突出顯示Range("C" & x)中的C我仔細查看,但沒有看到任何缺失。

我非常感謝任何幫助。

回答

0

使用這樣的:

Range(Cells(x,3), Cells(x, Range("C" & x).End(xlToRight).Column)).Select 
+1

哦,我的帽子。讓我走出去,自殺!老兄,半個小時,我爲什麼哦,爲什麼!尷尬不是這個詞!無論如何,我感謝你的幫助。我會在10分鐘內接受答案!謝謝! – KoderM16

1

使用End(xlToRight)將只如果你的範圍是連續你的方法。

如果在範圍中間有空白單元格(假設列M和N爲空),則不會在列「O:X」中獲取包含數據的單元格。

Select在x行數據的最後一列,用:

Cells(x, Cells(x, Columns.Count).End(xlToLeft).Column).Select 

Select整個Range使用:

Range(Cells(x, 3), Cells(x, Cells(x, Columns.Count).End(xlToLeft).Column)).Select 

然而,很少需要Select,如果你「必須」,那麼最好先定義一個Range,像這樣:

Dim Rng As Range 

Set Rng = Range(Cells(x, 3), Cells(x, Cells(x, Columns.Count).End(xlToLeft).Column)) 

,後來,如果你需要它Select使用:

Rng.Select 
+0

嗨,它是連續的,因爲數據逐列粘貼直到最後。然後我試圖選擇它來複制並移動到單詞中。現在一切正常。謝謝你的幫助! – KoderM16

+0

@ KoderM16好吧,你應該知道使用'End(xlToRight)'和'End(xlDown)' –

+0

的危險我同意並感謝你的幫助伴侶:) – KoderM16