電子書籍の厳選無料作品が豊富!

あつかましいお願いですが、ご教示願います。
まったくの初心者で、いろいろネット検索しましたが自力ではできませんでしたので
質問させて頂きます。

発注在庫管理の業務に使用数、注文数、在庫を記録したファイルがあります。
3か月分のデータが日単位で並んでいるのですが、簡略のため月単位で説明させて頂きます。

旧データをそのままコピーして新データとします。
旧データは9,10,11月のデータ、新データは10,11,12月に更新します。

VBAにしたい作業は添付図の通り、
旧データの10,11月の注文数を、新データの10,11月の注文数にコピペ、
旧データの9月在庫を、新データの先月末在庫にコピペしたいです。
行数は6000行程度あるため。

現在はちまちま手作業でコピペしていますが、担当替えでエクセル不慣れな人間でも
間違いなくできるようにVBAでやりたいと思っています。

ご助力お願いします。

「エクセルVBA条件に合う行をコピー貼付け」の質問画像

A 回答 (2件)

こんばんは!


一例です。

「旧データ」のSheet名は「Sheet1」・「新データ」のSheet名は「Sheet2」とします。

標準モジュールに↓のコードをコピー&ペーストしてマクロを実行してみてください。

Sub Sample1()
Dim i As Long, lastRow1 As Long, lastRow2 As Long
Dim c As Range, wS As Worksheet
Set wS = Worksheets("Sheet1")
Application.ScreenUpdating = False
With Worksheets("Sheet2")
lastRow1 = wS.Cells(Rows.Count, "B").End(xlUp).Row
wS.Range("A:B").Insert
Range(wS.Cells(2, "A"), wS.Cells(lastRow1, "A")).Formula = "=IF(C2="""",A1,C2)"
Range(wS.Cells(2, "B"), wS.Cells(lastRow1, "B")).Formula = "=A2&D2"
lastRow2 = .Cells(Rows.Count, "B").End(xlUp).Row
.Range("A:B").Insert
Range(.Cells(2, "A"), .Cells(lastRow2, "A")).Formula = "=IF(C2="""",A1,C2)"
Range(.Cells(2, "B"), .Cells(lastRow2, "B")).Formula = "=A2&D2"
For i = 2 To lastRow2
If InStr(.Cells(i, "B"), "注文数") > 0 Then
Set c = wS.Range("B:B").Find(what:=.Cells(i, "B"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
.Cells(i, "F").Resize(, 2).Value = wS.Cells(c.Row, "G").Resize(, 2).Value
End If
ElseIf InStr(.Cells(i, "B"), "在庫") > 0 Then
Set c = wS.Range("B:B").Find(what:=.Cells(i, "B"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
.Cells(i, "E") = wS.Cells(c.Row, "F")
End If
End If
Next i
.Range("A:B").Delete
wS.Range("A:B").Delete
Application.ScreenUpdating = True
End With
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 1
この回答へのお礼

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

希望通りの動作ができました。

1日かけてようやく中身を理解しましたが、

Range(wS.Cells(2, "A"), wS.Cells(lastRow1, "A")).Formula = "=IF(C2="""",A1,C2)"

"=IF(C2="""",A1,C2)"と1行目、2行目を指示しているのでは?と3行目以降もちゃんと入力されるのか理解できませんでしたが^^;

とにもかくにも稚拙な説明にもかかわらずありがとうございました。

お礼日時:2014/09/09 21:50

>3か月分のデータが日単位で並んでいるのですが、簡略のため月単位で説明させて頂きます。



アホ!日単位で説明でせよ!!

作りたいのはファイルか?シートか??
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!