-2
我在我的Excel工作簿中有4個選項卡:主跟蹤,進行中,已完成和已移除。主跟蹤表中包含數百個任務的列表。列A到G保存每個任務的信息,列「H」包含任務當前狀態的下拉列表。這個想法是能夠點擊列「H」中的下拉菜單並調整狀態,如果選擇「進行中」,該行中的任務將被移動到「進行中」選項卡中。VBA-將行移動到另一個工作表並重新排列它們在新工作表中的順序
但是,我碰到的問題是在「進行中」工作表內,我有列的額外輸入不在「主跟蹤」工作表。我還想保留「狀態」列作爲每張表格右側的最後一列。實質上,我會將「A:G」列中的數據放入「進行中」選項卡中對應的「A:G」列中,但狀態列(列「H」)將移動到我的3個附加列(在這種情況下列「K」)。有沒有人知道一種方法來做到這一點?
我知道這是一個漫長的問題,但任何幫助將不勝感激。謝謝!
下面是我的代碼來將數據移動到不同的單元:
Option Explicit
Sub MoveRows()
Application.ScreenUpdating = False
With Worksheets("Main Tracking")
With .Range("H1", .Cells(.Rows.Count, "H").End(xlUp))
FilterAndCopy .Cells, "In Progress"
FilterAndCopy .Cells, "Completed"
FilterAndCopy .Cells, "Remove"
End With
End With
Application.ScreenUpdating = True
End Sub
Sub FilterAndCopy(rng As Range, filterStrng As String)
With rng
.AutoFilter Field:=1, Criteria1:=filterStrng
If Application.WorksheetFunction.Subtotal(103, .Resize(, 1)) > 1 Then
With .Resize(.Rows.Count).Offset(1).SpecialCells(xlCellTypeVisible).EntireRow
.Copy Destination:=Worksheets(filterStrng).Cells(Rows.Count, "A").End(xlUp).Offset(1)
.Delete
End With
End If
.Parent.AutoFilterMode = False
End With
End Sub
你可以在沒有這種併發症的情況下編碼嗎?如果你能做到這一點,併發布代碼,那麼我肯定有人會幫助你最後一部分。 –
添加了代碼。謝謝。 – gluc7