メインコンテンツへスキップ
 

Excelで日付に基づいて行をコピーして別のシートに貼り付ける方法は? 

著者:シャオヤン 最終更新日:2024年08月12日

ある範囲のデータがあるとすると、特定の日付に基づいて行全体をコピーしてから、別のシートに貼り付けたいと思います。 Excelでこの仕事に対処するための良いアイデアはありますか?

行をコピーして、今日の日付に基づいて別のシートに貼り付けます

日付が今日よりも大きい場合は、行をコピーして別のシートに貼り付けます


行をコピーして、今日の日付に基づいて別のシートに貼り付けます

日付が今日の場合に行をコピーする必要がある場合は、次のVBAコードを適用してください。

1。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

2に設定します。 OK をクリックします。 インセット > モジュール、モジュールウィンドウに次のコードを貼り付けます。

VBAコード:今日の日付に基づいて行をコピーして貼り付けます。

Sub CopyRow()
'Updateby Extendoffice
    Dim xRgS As Range, xRgD As Range, xCell As Range
    Dim I As Long, xCol As Long, J As Long
    Dim xVal As Variant
    On Error Resume Next
    Set xRgS = Application.InputBox("Please select the date column:", "KuTools For Excel", Selection.Address, , , , , 8)
    If xRgS Is Nothing Then Exit Sub
    Set xRgD = Application.InputBox("Please select a destination cell:", "KuTools For Excel", , , , , , 8)
    If xRgD Is Nothing Then Exit Sub
    xCol = xRgS.Rows.Count
    Set xRgS = xRgS(1)
    Application.CutCopyMode = False
    J = 0
    For I = 1 To xCol
        Set xCell = xRgS.Offset(I - 1, 0)
        xVal = xCell.Value
        If TypeName(xVal) = "Date" And (xVal <> "") And (xVal = Date) Then
            xCell.EntireRow.Copy xRgD.Offset(J, 0)
            J = J + 1
        End If
    Next
    Application.CutCopyMode = True
End Sub

3。 上記のコードを貼り付けた後、を押してください F5 このコードを実行するためのキーを押すと、行をコピーする日付列を選択するように促すプロンプトボックスが表示されます。スクリーンショットを参照してください。

コードを実行した後、日付範囲を選択するスクリーンショット

4。 次に、をクリックします OK ボタンをクリックし、別のプロンプトボックスで、結果を出力する別のシートのセルを選択します。スクリーンショットを参照してください。

宛先セルを選択するスクリーンショット

5。 そして、 OK ボタンをクリックすると、今日の日付の行が新しいシートに一度に貼り付けられます。スクリーンショットを参照してください。

結果のスクリーンショット


日付が今日よりも大きい場合は、行をコピーして別のシートに貼り付けます

日付が今日以降の行をコピーして貼り付けるには、たとえば、日付が今日から5日以上の場合は、行をコピーして別のシートに貼り付けます。

次のVBAコードはあなたに有利かもしれません:

1。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

2に設定します。 OK をクリックします。 インセット > モジュール、モジュールウィンドウに次のコードを貼り付けます。

VBAコード:日付が今日よりも大きい場合は、行をコピーして貼り付けます。

Sub CopyRow()
'Updateby Extentoffice
    Dim xRgS As Range, xRgD As Range, xCell As Range
    Dim I As Long, xCol As Long, J As Long
    Dim xVal As Variant
    On Error Resume Next
    Set xRgS = Application.InputBox("Please select the date column:", "KuTools For Excel", Selection.Address, , , , , 8)
    If xRgS Is Nothing Then Exit Sub
    Set xRgD = Application.InputBox("Please select a destination cell:", "KuTools For Excel", , , , , , 8)
    If xRgD Is Nothing Then Exit Sub
    xCol = xRgS.Rows.Count
    Set xRgS = xRgS(1)
    Application.CutCopyMode = False
    J = 0
    For I = 1 To xCol
        Set xCell = xRgS.Offset(I - 1, 0)
        xVal = xCell.Value
        If TypeName(xVal) = "Date" And (xVal <> "") And (xVal >= Date And (xVal < Date + 5)) Then
            xCell.EntireRow.Copy xRgD.Offset(J, 0)
            J = J + 1
        End If
    Next
    Application.CutCopyMode = True
End Sub

Note:上記のコードでは、今日より少ない日数や必要に応じて日数などの基準を変更できます。 If TypeName(xVal)= "Date" And(xVal <> "")And(xVal> = Date And(xVal <Date + 5))Then スクリプトコード。

3。 次に、 F5 このコードを実行するためのキー。プロンプトボックスで、使用するデータ列を選択してください。スクリーンショットを参照してください。

コード2を実行した後、日付範囲を選択するスクリーンショット

4。 次に、をクリックします OK ボタンをクリックし、別のプロンプトボックスで、結果を出力する別のシートのセルを選択します。スクリーンショットを参照してください。

日付が今日より大きい場合に行を配置する宛先セルを選択するスクリーンショット

5。 クリック OK ボタンをクリックすると、次のスクリーンショットに示すように、日付が今日から5日以上の行がコピーされ、新しいシートに貼り付けられます。

日付が今日より大きい場合のみ行を表示するスクリーンショット


最高のオフィス生産性向上ツール

🤖 Kutools AI アシスタント: 以下に基づいてデータ分析に革命をもたらします。 インテリジェントな実行   |  コードを生成  |  カスタム数式の作成  |  データを分析してグラフを生成する  |  Kutools関数を呼び出す...
人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト ツール (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 ツール (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 ツール (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット ツール (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...


Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!