2015-11-05 33 views
1

To clear patients from a table I use this simple line of code與行清洗(不刪除)細胞,因爲它刪除行,不清除值上移

enter image description here

Selection.Delete Shift:=xlUp 

每次我這樣做,我在桌子底部鬆動行。

清除綠色之後,是否有其他方法可以將其餘的行向上移動(不影響我的表格)?

「PAID」只是一個簡單的按鈕,用於選擇內部的顏色更改。

+0

我的表格 http://postimg.org/image/3sga0fqdp/ – besthost

+0

這裏沒有簡單的代碼行。如果你只是「清除」你的選擇,你最終會得到空行。但是,您可以剪切並粘貼剩餘的行(嘗試使用宏記錄器)。 – Verzweifler

+0

爲什麼你不想刪除行?它看起來像你的表是你的工作表中預先格式化的範圍,刪除行將減少行數。這是問題嗎? –

回答

1

此代碼將從選定行中刪除內容,並將該選定行下的每一行移動到上方。 如果遇到空行,它將停止運行。

出於清除的目的,您不應選擇B列,而只選擇C到G列。

Sub delete_line() 

For i = 1 To 100000 
    Selection.ClearContents 
    Selection = Selection.Offset(1, 0).Value 
    Selection.Offset(1, 0).Select 
    If IsEmpty(Selection.Cells(1, 1).Value) = True Then Exit For 
Next i 

End Sub 

未通過多個行選擇對其進行測試。

編輯: 如果您選擇多行,它將不起作用。

+0

'(Selection.Cells(1,1).Value)' 這是什麼意思?第一個細胞在選擇? – besthost

+0

是的,這是一個停止功能,所以它不會遍歷整個文檔中的每一行,而是停在最後一個未使用的行。 它只是檢查我們剛剛向上移動的行下面的行是空的還是有數據的,如果它有數據,它會繼續向上移動行的過程。 如果問題是Cells(1,1)引用的內容,它將是所選單元格的左上角單元格。 – Alex4336