私はできるマクロを作成したいと思います私には、特定の列のx個の行をコピーします。たとえば、10.500行にある列Kがあります。毎回1000行、最後に500行もコピーしたいと思います。コーディングの部分で何か助け?私は非常に多くのサイトを見ましたが、成功しませんでした。コピーした番号を他のExcelシートに貼り付ける必要はありません。選択した列から毎回1000行コピーするマクロコマンドが必要です。 どうもありがとうございました! 乾杯
回答:
回答№1は2- 列を選択し、[マクロ]ダイアログ(Alt + F8)からサブプロシージャを実行します。最初の1000個のセルがクリップボードにコピーされます。
- データを別のプログラムに貼り付けます。
- Excelに戻り、サブプロシージャを再度実行します。次の1000行のデータがクリップボードにコピーされます。
データの最後のグループがクリップボードにコピーされると、メッセージボックスが通知します。
Option Explicit Sub progressiveCopy() Dim m As Long Static i As Long, k As Long Application.CutCopyMode = False m = 1000 If k <> ActiveCell.Column Then k = ActiveCell.Column i = 0 End If With Worksheets("sheet1") m = Application.Min(m, .Cells(.Rows.Count, k).End(xlUp).Row - i) .Cells(i + 1, k).Resize(m, 1).Copy i = i + m If i >= .Cells(.Rows.Count, k).End(xlUp).Row Then MsgBox "This column is complete. Select another column next time." End If End With End Sub
繰り返し操作を容易にするために、[マクロ]ダイアログのサブプロシージャにホットキーの組み合わせを設定できます。
回答№2の場合は0
このコードは、現在選択されている列。コピーする番号が残っている行より少ないかどうかをチェックします。範囲を選択し、範囲をコピーモードにします。範囲をコピーしたら、シート、ドキュメント、またはデータを貼り付けるものに移動する必要があります。
コードを変更して、1000を下に選択しました行または列に残っているもの。したがって、コードの実行、データの貼り付け、コードの実行、データの貼り付けができるはずです。最後に達すると、列の最後にいることを示すメッセージが表示されます。
Application.CutCopyMode = False
numRowstoCopy = 1000
varCurrentRow = ActiveCell.Row
varCurrentColumn = ActiveCell.Column
FinalRow = Cells(Rows.Count, varCurrentColumn).End(xlUp).Row
varRowsToEnd = FinalRow - varCurrentRow
If varRowsToEnd < numRowstoCopy Then
Range(Cells(varCurrentRow, varCurrentColumn), Cells(varCurrentRow + varRowsToEnd, varCurrentColumn)).Select
Selection.Copy
MsgBox "Last Rows to Paste Have been copied"
Else
Range(Cells(varCurrentRow, varCurrentColumn), Cells(varCurrentRow + numRowstoCopy - 1, varCurrentColumn)).Select
Selection.Copy
ActiveCell.Offset(numRowstoCopy, 0).Select
End If