|
▼aribaba さん:
>▼かみちゃん さん:
>>こんにちは。かみちゃん です。
>>
>>> ラベル枚数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
>>
>>一応サンプルファイルを作って動作確認しています。
>>
>すみませんが、枚数6から50までになるときはどうすればよろしいですか?
>枚数2から5までは一つボダンにしていますが、枚数6から50まで7段階で分けてしたいですが。枚数5枚でひとつのボダンにしたいですが、先教えてもらったことを同じことしたいので、こんな時はどうすればいいですか?お手数ですが、お願いします。
Set rngData = WS1.Range("A1", rngLast.Offset(, 17))
このコードは17の数字の意味よくわかりませが、教えてもらえませんか?
|
|