我想知道是否有人可以幫助我。將數據移動到頂端
爲了保持給定的'輸入範圍',我試圖將一個腳本從用戶選擇的一行或多行中刪除單元格內容。然後,如果填充從第7行開始的列「A」,則將包含數據的所有行移至電子表格的頂部。
我已經把下面的代碼從行中刪除了單元格內容,但我無法弄清楚如何移動'向上移動'包含數據的行以將其放在另一個下面,省略任何空行數據之間。
Sub DelRow()
Dim msg
Sheets("Input").Protect "password", UserInterFaceOnly:=True
Application.EnableCancelKey = xlDisabled
Application.EnableEvents = False
msg = MsgBox("Are you sure you want to delete this row?", vbYesNo)
If msg = vbNo Then Exit Sub
With Selection
Application.Intersect(.Parent.Range("A:R"), .EntireRow).Interior.ColorIndex = xlNone
Application.Intersect(.Parent.Range("S:AD"), .EntireRow).Interior.ColorIndex = 37
Application.Intersect(.Parent.Range("AF:AQ"), .EntireRow).Interior.ColorIndex = 42
Selection.SpecialCells(xlCellTypeConstants).ClearContents
End With
Application.EnableEvents = True
End Sub
我已經把下面所示的「排序」微距,雖然這個工程包含數據連續兩行,它不會爲我用我的「刪除」宏行工作。
例如,如果我填充「輸入範圍」的第一行和第二行,則代碼將使用列「B」作爲排序標準正確排序電子表格。但是,如果我刪除第一行的內容,因此創建一個空白行,'Sort'腳本不會向上移動第二行。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.EnableCancelKey = xlDisabled
With Sheets("Input")
If .Range("A7").Value = "" Then Exit Sub
.Range("B7:AS400").Sort Key1:=Range("$B$1"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
DatOption1:=xlSortNormal
End With
End Sub
我只是想知道一個人是否有可能來看看這個請,並提供如何,我需要適應我的代碼,這樣我可以添加排序功能的一些指導。
許多的感謝和親切的問候
回答你的問題,然後重新閱讀您的問題...你實際上是試圖刪除整個行,或只是其中的一部分之後? –
Hi @Daniel Cook,感謝您花時間回覆我的帖子。我不刪除行,因爲我需要'輸入範圍'保持不受限制,所以我將刪除單元格內容。非常感謝和親切的問候 – IRHM