Excel - 条件に基づいて行内のすべての列をコピーする方法

Excel - 条件に基づいて行内のすべての列をコピーする方法

私はマクロ初心者なので、誰か助けて欲しいと思っています。ある条件を満たすデータシートからレポートを作成しようとしています。行内のすべてのデータ (セル) を取得する必要があります。たとえば、列 10 で条件 <1 を満たすデータを取得して、それらのセル/行を新しいシートにコピーする必要があります。Excel で関数が見つからないので、変更できる高度ではないマクロでうまくいくことを願っています。よろしくお願いします。

答え1

  • すべてのデータを含むExcelシートのコピーを開きます
  • ALT+を押しF11てVBAエディタを開きます
  • 左ペインからsheet1を開き、以下のコードを挿入します。

    Sub mymacro()
      For myrow = 1 To Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
        If Cells(myrow, 8) < 1 Then
          i = i + 1
          ActiveWorkbook.Sheets(1).Rows(myrow).Copy Destination:=ActiveWorkbook.Sheets(2).Rows(i)
        End If
      Next myrow
    End Sub
    
  • シートに戻ってALT+を押してF8マクロを実行します

このコードは最後の使用行まで実行され、8 番目の列の値が 1 未満かどうかを確認し、そうであれば、行全体をシート 2 の次の空き行にコピーします。

関連情報