|
こんにちは。かみちゃん です。
> ラベル枚数2〜4までを認識して捜操作しているですが(2の場合:元をコピーし > て、加工シートに貼り付け、3の場合:元をコピーして、加工シートに2回貼り付
> け、4の場合:元をコピーをして、加工のシートに3回貼り付け)、出荷明細_デ
> ータベースの量によって、その数値を毎日変わります、いつかなの数値あるの
> か、もちろんない日もありますので、上記のままだと、枚数3ない場合、そのま
> まコピーされます。
質問内容があまり理解できていないのですが、いただいたコードを眺めてみると、
以下のような感じのことがしたいのでしょうか?
Sub Sample1()
Dim WS1 As Worksheet
Dim WS2 As Worksheet
Dim rngLast As Range
Dim rngData As Range
Dim intData As Integer
Set WS1 = Worksheets("出荷明細_データベース)")
Set WS2 = Worksheets("加工")
Set rngLast = WS1.Range("A" & Rows.Count).End(xlUp)
Set rngData = WS1.Range("A1", rngLast.Offset(, 17))
MsgBox rngData.Address(, , , True) & " から抽出します"
For intData = 2 To 4
rngData.AutoFilter Field:=12, Criteria1:=intData
With rngData
Select Case intData
'L列が2のとき
Case 2
.Resize(, 12).Offset(1).Copy WS2.Range("A2")
'L列が3のとき
Case 3
.Resize(, 12).Offset(1).Copy WS2.Range("A14")
.Resize(, 12).Offset(1).Copy WS2.Range("A24")
'L列が4のとき
Case 4
.Resize(, 12).Offset(1).Copy WS2.Range("A34")
.Resize(, 12).Offset(1).Copy WS2.Range("A44")
.Resize(, 12).Offset(1).Copy WS2.Range("A54")
End Select
End With
Next
rngData.AutoFilter
MsgBox "処理を終了しました"
End Sub
一応サンプルファイルを作って動作確認しています。
> 枚数3ない場合、そのままコピーされます。
と [61037] でおっしゃっている
> 枚数4の数字ない時は、そのままA2:L300のデータをコピーされます。これはちょっと困る
は、同じ事象なのでしょうか?
困るのは、わかりましたが、具体的にどうしたいのかの説明がないのでわかりません。
上記コードでは、そのような事象にはならないと思います。
> 最後加工シートに貼り付けたのをコピーして、出荷明細_データベースに最終セ
> ルに貼り付けして、Excelでデータ並び替えをしています。
これも意味がわかりません。
今回の要件に追加ということですか?
なお、投稿の際、引用は、最低限のものだけで結構です。
スレッド全体を見ればわかることですので。
また、[名前なし]さんは、aribabaさんだったのですか?
それであれば、60977 のご質問とダブっていますので、向こうは、解決済みにして
おいていただけませんか?
|
|