[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オートフィルタ検索データのコピー』(どかべん)
Excel2003/WindowsXP
オートフィルタで検索したデータの範囲抽出は、下記のコードでできましたが、 このデータを他のシートにコピーすると、検索範囲にデータがないと、貼り付け シートのフォームを崩してしまいます。貼り付けシートは上下2段で2項目を まとめていますので、上段に検索データがないときは最悪の状態になります。
Selection.AutoFilter Field:=10, Criteria1:="商品名" Selection.SpecialCells(xlCellTypeVisible).Select 上 = 6 左 = 3 下 = Range(Cells(上, 左), Cells(上, 左)).End(xlDown).Row 右 = 8 Range(Cells(上, 左), Cells(下, 右)).Copy Sheets(UserForm2.ComboBox1.Text).Select Range("A7").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("データ").Select Application.CutCopyMode = False Selection.AutoFilter Field:=10, Criteria1:="サンプル名" 上 = 6 左 = 3 下 = Range(Cells(上, 左), Cells(上, 左)).End(xlDown).Row 右 = 8 Range(Cells(上, 左), Cells(下, 右)).Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets(UserForm2.ComboBox1.Text).Select Range("A45").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("データ").Select Application.CutCopyMode = False
これの防止方法を教えてください。
状況が見えませんが、検索結果があった場合は問題なく動作するのでしょうか。 であれば、コピー処理の前に検索データの有無をチェックするだけではダメですか? (Mook)
なんだか、最近その手のコードをよく見かける気がします。。。 そんなに魅力的でしょうか。 問題が出る可能性の有るコードなんですが。 ↓同じコードでの同じ質問です。 [[20100123101125]] 『オートフィルタで検索データの貼り付け』(キョチャン) ↑の中でも書いてますが 下 = Range(Cells(上, 左), Cells(上, 左)).End(xlDown).Row この部分は 下 = Cells(上, 左).End(xlDown).Row で良いです。
でも、そんな事しなくても良いと思いますけどね。 前の御質問時に書きましたが、フィルタ範囲が分かれば コピー範囲は分かるので。
また、セレクトしないコードを書くようにすると良いと思います。 ↓は、SpecialCells(xlCellTypeVisible) を入れていないので 入れてもらうのがよいと思いますが、下の方に同じ様なコードが有りますので (上側は別件の話なので、下から6個目辺りからご覧頂ければ良いと思います。) ご参考に。 [[20100123101125]] 『オートフィルタで検索データの貼り付け』(キョチャン)
ちなみに、こちらはそのままですか? 一言有っても良いと思いますが。 [[20100327171634]] 『セル範囲の選択』(どかべん)
(HANA)
解りました。最初のコードは実際作ったコードをアレンジしています。オートフィルタで検索した データがない場合、別シートに貼り付けたときのトラブル解決方法がわからないので、質問しています。 今までの質問にもこれが伏線にあります。これが解らないので、私の実際のコードは、If文を使って、 検索データがない場合はExit Sub して次の工程に入り、エラーを防いでいます。そのコードは 正常に作動しています。しかし、コードは長いものになっています。(このあたりの質問も、内容は 違っていますが質問していました。)
この問題を解決するため、私は私なりにその方法を探してきました。たとえば、End(xlDown)、 End(xlUp)等々。
最後に、私は怪人二十面相です。明智君はその正体を見破っているようですが、私は、この宝石を 奪うまで、ゲームを続けます。皆様にどのようにののしられようとも。 (どかべんこと怪人二十面相より)
こんにちは。まだ見ておられるでしょうか。
> この問題を解決するため、私は私なりにその方法を探してきました。たとえば、End(xlDown)、 End(xlUp)等々。
End(xlUp)でいけると思いますが。 うまくいきませんでしたか? 最終行の行番号と見出し行の行番号が一致したら、表示データ無し。ですよね。 で、表示データのない時は(不具合がでるから)コピーしない、ですよね。
> この宝石を奪うまで、 取られて減るものでなし。欲しいならいくらでも差し上げます(笑)。 回答されているかた、みんなそうじゃないですか。ただ、なにを宝石と考えるかが違っているだけで。 覆面なんか被っても 蒸し暑いだけだと思いますが。
−佳−
>皆様にどのようにののしられようとも。 つまりみんなに罵られるような事をするという宣言ですか。 もしそうであれば管理人であるkazuさんの迷惑にもなりますのでおやめくださいね。 (独覚)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.