Excel VBA質問箱 IV

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

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


44927 / 76735 ←次へ | 前へ→

【36816】Re:オートフィルタの結果を他のオートフィル...
発言  Jaka  - 06/4/14(金) 16:08 -

引用なし
パスワード
   最近、脳軟化が始まっているのか、シートがあっちゃこっちゃ入れ替わるとついていけなくなります。
1、2分ほど前に試し打ちして、捨てた台をこれ打ったっけ?ってな事になるので、
前日との釘の比較はまず無理状態です。
だから、WS5.Parentとなんて書かれると、WS5って何?状態。
最近に始まった事じゃないけどね!
こんなですから、まだ全体を把握で出来ていません。
頭がぐにゃぐにゃ回っている状態で気づいた事。(まとまってなくてすみません。)

1、
下記変数の宣言がされていないようですが...。
Dim Cel As Range, CelAry() As Range
           ↑特にこの配列、これがないとエラーになると思います。
            変数が定義されていないって....。
2、        
>’オートフィルタをかけた仕入シートのBE列の最後の行
> Set 範囲 = WS5.Range("BE65536").End(xlUp).Offset(1)
これは、いつ取得しているのでしょうか?
いつと言うのは漠然としすぎるので、オートフィルタをかけた後でしょうか?
オートフィルタのコードが書いてなかったので、手動でオートフィルタをかけているのかな?
と、思います。
オートフィルタをかけた後に、フィルタ最終行を
Range("BE65536").End(xlUp)・・・
で、取得するととんでもない事になったりするので止めてください。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=87;id=FAQ

3、
>WS5.Activate
>Range("A1", Range("D65536").End(xlUp)).Offset(,2).Formula = _
>      "=IF(BF1,D1-BE1,""D1"")"
これ、フィルタして表示されているセルに対して関数を書き込んでいるのしょうか?
フィルタして飛び飛びのセルに対して、一括で書き込むことが出来ないです。
1個1個ループ書かないとダメだと思います。
(Unionメソッドの事は、混乱を招きそうなので省きます。)

オートフィルタの全て表示は、こんな感じで出来ます。、

Sub 全表示()  'オートフィルタ解除または全表示時、
        '関数が多いとフリーズしたようになるから計算方法を手動にする。
  Dim CalFLG As Boolean
  With Application
    If .Calculation = xlAutomatic Then
      .Calculation = xlManual
      CalFLG = True
    End If
    Sheets("シート2").ShowAllData '全表示
   
    If CalFLG = True Then
      .Calculation = xlAutomatic
    End If
  End With
End Sub

オートフィルタの解除は、こんな感じでできます。
Sheets("シート2").AutoFilterMode = False

>Sub オートフィルタオフ1()
> Dim Wb1 As Workbook
> Dim WB2 As Workbook
> Dim WS3 As Worksheet
> Dim WS2 As Worksheet
> Dim WS2 As Worksheet
> Set Wb1 = Workbooks("入力.xls") 
> Set WS2 = Wb1.Sheets("入力")
> Set WB2 = Workbooks("集計.xls")
> Set WS3 = WB2.Sheets("在庫")
> Set WS5 = WB2.Sheets("仕入")

>'在庫シートのオートフィルタ解除。
> If WS3.AutoFilterMode = True Then
    ↓ WS4 が上でセットされてないからエラーになります。
>    WS4.Range("B23").AutoFilter
> End If
>End Sub
       ↓
決まったシートのオートフィルタを解除するなら、
こんな感じでいいです。

Sub オートフィルタオフ1()
  WorkBooks("Book1.xls").Sheets("シート2").AutoFilterMode = False
  Doevant '←入れておいた方が、良いと思います。
End Sub

オートフィルタして表示された列の最後の行は、こんな感じ....。

With Sheets("Sheet2").AutoFilter.Range
  With .Columns(1).SpecialCells(xlCellTypeVisible)
    With .Areas(.Areas.Count)
      MsgBox .Rows(.Cells.Count).Row
    End With
  End With
End With
0 hits

【36730】オートフィルタの結果を他のオートフィル... 初心者 06/4/11(火) 11:11 質問
【36732】Re:オートフィルタの結果を他のオートフィ... Jaka 06/4/11(火) 11:40 発言
【36734】Re:オートフィルタの結果を他のオートフィ... 初心者 06/4/11(火) 12:30 質問
【36737】Re:オートフィルタの結果を他のオートフィ... Jaka 06/4/11(火) 15:40 発言
【36743】Re:オートフィルタの結果を他のオートフィ... 初心者 06/4/11(火) 18:07 質問
【36748】Re:オートフィルタの結果を他のオートフィ... Jaka 06/4/12(水) 14:24 発言
【36803】Re:オートフィルタの結果を他のオートフィ... 初心者 06/4/14(金) 11:04 質問
【36816】Re:オートフィルタの結果を他のオートフィ... Jaka 06/4/14(金) 16:08 発言
【36820】Re:オートフィルタの結果を他のオートフィ... Jaka 06/4/14(金) 17:22 発言
【36828】Re:オートフィルタの結果を他のオートフィ... 初心者 06/4/14(金) 18:38 質問
【36869】めちゃくちゃ間違ってました。 Jaka 06/4/17(月) 10:33 発言
【36893】Re:オートフィルタの結果を他のオートフィ... 初心者 06/4/17(月) 15:45 お礼

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