0
私は、アーカイブのマクロを作成しています。正しいセル値を持つ行を選択し、別のタブに移動します(元のタブの行を削除しています)。マクロが完全に実行されません
マクロは完全に正常に動作していましたが、ファイルを変更して別の新しいタブを使用することにしました。私は私の新しいタブで私のマクロを計算し、それが正しい行上で動作し、それらを削除しますが、私の「アーカイブタブ」でそれらをコピーしない場合:
Sub Archive_Ongoing()
Test 2 : works for 2 arguments.
Dim xRg As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
Dim K As Long
I = Worksheets("B90_Projects_OnGoing").UsedRange.Rows.Count
J = Worksheets("B90_Projects_Archived").UsedRange.Rows.Count
If J = 1 Then
If Application.WorksheetFunction.CountA(Worksheets("B90_Projects_Archived").UsedRange) = 0 Then J = 0
End If
Set xRg = Worksheets("B90_Projects_OnGoing").Range("O1:O" & I)
Set yRg = Worksheets("B90_Projects_OnGoing").Range("T1:T" & I)
On Error Resume Next
Application.ScreenUpdating = False
For K = 1 To xRg.Count
If CStr(xRg(K).Value) = "Closed" And CStr(yRg(K).Value) <> "" Then
xRg(K).Selection.Copy Destination:=Worksheets("B90_Projects_Archived").Range("A" & J + 1)
xRg(K).EntireRow.Delete
If CStr(xRg(K).Value) = "Closed" Then
K = K - 1
End If
J = J + 1
End If
Next
Application.ScreenUpdating = True
End Sub'
いずれも、理由を説明することができるだろうか?
'XRG(K:あなたが評価する目的でこれをやっている場合は
/そして、あなたはこのようにインクリメント
K2
変数を持っている場合があります単一の行を削除し、アップ次の値をシフト( "A"&J + 1) 'が選択をコピーしようとしていて、あなたのコードで何も選択されていません...もしあなたがそれを手動で選択し、マクロを実行していますか? – Maldred'On Error Resume Next'を削除して、コードを行ごとにデバッグすると、**あなたの問題が非常に迅速に**見つかります。解決できない場合は、具体的な内容(つまり、エラーの行と問題解決のために何を試したか)を使って質問を更新してください。また、範囲から行を削除する場合は、範囲を逆方向にループする必要があります。 –
この行 'xRg(K).Selection.Copy ....'はエラー438を投げます....あなたのコードはおそらくそれのために働くことはできません – jsotola