2015-07-20 75 views
0

我目前正在嘗試創建一個宏,它將根據一些條件進行選擇。但是,由於某些單元格爲空,因此在選擇當前點右側的所有數據時遇到了問題。VBS Excel試圖在宏中選擇過去的空單元格

到目前爲止,我有這樣的事情:

rwcnt = WorksheetFunction.CountA(Range("A:A")) 
lastc = Cells(1, Columns.Count).End(xlToLeft).Column 
Dim i As Long 


For i = 2 To rwcnt 
    If IsNumeric(Cells(i, 1).Value) <> True Then 
     Range(Cells(i, 1).Address, Cells(i, 1).End(xlDown).Address).Select 
     Range(Selection, lastc).Select 
     Exit For 
    End If 
Next 

這讓我對象的「_global」失敗

以前的錯誤方法「範圍」,我有最後一個範圍行閱讀:

Range(Selection, Selection.End(xlToRight)).Select 

我試過這個,因爲我從左邊開始,但是有些行有空白單元格,這是選擇停止的地方。正因爲如此,我試圖從右邊進入,找到我的最後一列,然後選擇它。任何幫助將不勝感激!

+1

你想做什麼?最後在單元格中選擇它,然後退出for()循環?一旦你點擊一個非數字單元格,它將退出該循環。你的範圍錯誤在哪裏?就我所知,您的lastc將繼續發送到第1列。您將從最後一列開始('.columns.count'),並且向左移動直到出現空單元格。在返回A1之前,第1行是否有空單元格? – BruceWayne

+0

@ScottT你可以縮進第一行代碼嗎(在這行的開頭添加4個空格)?這將使其格式正確。不幸的是,我無法編輯更改了這麼少的字符。 – Jane

+0

我很困惑你想做什麼 - 似乎它應該很容易,但你對你想要完成的事情的描述對我來說沒有意義... –

回答

1
Range(Selection, lastc).Select 

將失敗,因爲對於此語法,範圍期望開始範圍和結束範圍。 (參見https://msdn.microsoft.com/en-us/library/office/ff841254(v=office.15).aspx語法)

lastc是一個數字(最後使用的柱的具體數目)。

你想要使用像,而不是執行以下操作:

 Range(Selection, Cells(i, lastc)).Select 

的參數將取決於你要選擇什麼。

+0

這正是我所期待的,非常感謝! –

+0

不客氣! – Jane