Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9751 / 13644 ツリー ←次へ | 前へ→

【25607】オートフィルタの検索値を変数にして連続実行するとフィルタされない wao 05/6/8(水) 8:59 発言[未読]
【25631】Re:オートフィルタの検索値を変数にして... kobasan 05/6/8(水) 21:08 回答[未読]
【25633】Re:オートフィルタの検索値を変数にして... kobasan 05/6/8(水) 23:16 発言[未読]
【25650】Re:オートフィルタの検索値を変数にして... wao 05/6/9(木) 14:44 お礼[未読]

【25607】オートフィルタの検索値を変数にして連続...
発言  wao  - 05/6/8(水) 8:59 -

引用なし
パスワード
   オートフィルタの検索値を変数をセットし、繰り返し実行すると
2回目以降オートフィルタが実行されませんでした。
(手動でフィルタボタンを押しても反応がないときがあります)
Criteria1で文字列を設定すると正常に動作します

手動でオートフィルタを解除→再設定すると
1回のみ実行可能

sub 業者名ごとにフィルタして別シートに貼り付け()
Dim 業者名 as string

For <繰り返し処理>

  Worksheets("請求処理用").Select
  Rows("2:2").Select
  Selection.AutoFilter
  Selection.AutoFilter Field:=11, Criteria1:=業者名
  
  Selection.CurrentRegion.Copy
  ActiveWorkbook.Worksheets.Add.Name = 業者名
  Worksheets(業者名).Range("A2").PasteSpecial Paste:=xlAll
  Worksheets(業者名).Select
Next

End sub

【25631】Re:オートフィルタの検索値を変数にして...
回答  kobasan  - 05/6/8(水) 21:08 -

引用なし
パスワード
   ▼wao さん 今晩は。

オートフィルタを解除するコードを入れました
試してみてください。
>
>手動でオートフィルタを解除→再設定すると
>1回のみ実行可能
>
'For <繰り返し処理>

  Worksheets("Sheet1").Select '<==Sheet1を 請求処理用 に置き換えてください
  Range("A2").Select
  Selection.AutoFilter Field:=4, Criteria1:=業者名
  Selection.CurrentRegion.Offset(1).Copy
  '
  ActiveWorkbook.Worksheets.Add.Name = 業者名
  Worksheets(業者名).Select
  Sheets(業者名).Cells(65536, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlAll
  'Sheets(業者名).Cells(65536, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
  '
  '-----AutoFilterを解除
  Sheets("Sheet1").Select
  Range("A2").Select
  Selection.AutoFilter
'Next

【25633】Re:オートフィルタの検索値を変数にして...
発言  kobasan  - 05/6/8(水) 23:16 -

引用なし
パスワード
   今晩は。
コードを見直して、整理してみました。

'For <繰り返し処理>
  '-----抽出・コピー
   Sheets("Sheet1").Select  '<==Sheet1を 請求処理用 に置き換え
   Range("A2").AutoFilter Field:=11, Criteria1:=業者名
   Range("A1").CurrentRegion.Offset(1).Copy
  '-----貼付
  ActiveWorkbook.Worksheets.Add.Name = 業者名
  Sheets(業者名).Cells(65536, 1).End(xlUp).PasteSpecial Paste:=xlAll
  '                  .PasteSpecial Paste:=xlValues
  '-----AutoFilterを解除
  Sheets("Sheet1").AutoFilterMode = False '<==Sheet1を 請求処理用 に置き換え
'Next

【25650】Re:オートフィルタの検索値を変数にして...
お礼  wao  - 05/6/9(木) 14:44 -

引用なし
パスワード
   ▼kobasan さん:
>今晩は。
>コードを見直して、整理してみました。

できました
解除しているつもりが、きちんとできていなかったんですね。
SPインストールしたり(笑)がんばっていたんですけど。。。
やっぱり自分が悪かったのね。

ありがとうございます

9751 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free