Excelブックには、メイントラッキング、進行中、完了、および削除の4つのタブがあります。メイントラッキングシートには、何百ものタスクのリストがあります。列A〜Gは各タスクに関する情報を保持し、列「H」はタスクの現在の状態を示すドロップダウンリストを保持する。考え方は、列「H」のドロップダウンをクリックしてステータスを調整できることです。「進行中」が選択されている場合、その行のタスクは「進行中」タブに移動されます。VBA-行を別のシートに移動して、新しいシートにある順序を並べ替えます。
しかし、私が実行している問題は「進行中」シート内にあり、「メイントラッキング」シートにない追加の入力用の列があります。私はまた、各シートの右側の最後の列として "ステータス"列を保持したいと思います。本質的には、「A:G」列から「In Progress」タブの対応する「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