VBA(エクセル)の質問です。

Sheet1の任意行をSheet2にコピーするには?
Sheet2のコピー先は、(入力データの)最下行。ちなみにコピーは、値コピー+書式コピーをしたい。

やりたいのは、Sheet1で管理している案件一覧でクローズ(※1)したものをSheet2に移動していきたいということです。


※1 クローズの判定は、特定セル(完了日)がNULLでないという条件とします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/11/29 13:07:03
  • 終了:--

回答(1件)

id:nitscape No.1

nitscape回答回数526ベストアンサー獲得回数02005/11/29 13:33:48

ポイント40pt

Sheet1の1~10行目の行データに対し、2列目に値が書き込まれていたら、Sheet2の2行目以降(データが書き込まれていない行)へ値と書式をコピーするという場合は下のようにすればできると思います。このような感じでしょうか?


Sub Macro1()


For i = 1 To 10

Sheets(”Sheet1”).Select

If Cells(i, 2).Text <> ”” Then

Rows(i).Select

Selection.Copy

Sheets(”Sheet2”).Select

Rows(ActiveSheet.Range(”$A$65536”).End(xlUp).Row + 1).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

End If

Next

End Sub

id:P-mako

ご回答ありがとうございます。

かなり良い感じです。

Sheet1の記入済み行すべてを対象にするために、こんな記述にしました。

ありがとうございます。

---

Sheets(”Sheet1”).Select

Row = ActiveSheet.Range(”$A$65536”).End(xlUp).Row + 1

For i = 1 To Row

2005/11/29 14:38:14
  • id:aspide
    前半のコピーする部分で

    オートフィルタを使い

    With Worksheets(”Sheet1”).Range(”A1”)
    .AutoFilter
    .AutoFilter field:=完了日位置, Criteria1:=”<>”
    .CurrentRegion.SpecialCells(xlVisible).Copy
    .AutoFilter
    End With

    一網打尽にコピーしてしまう方法もありますね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません