Excel VBA質問箱 IV

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

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


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

【22142】フィールドオプションの設定で抽出範囲の... モコ2 05/2/9(水) 20:37 質問[未読]
【22146】Re:フィールドオプションの設定で抽出範囲... かみちゃん 05/2/9(水) 22:27 発言[未読]
【22147】Re:フィールドオプションの設定で抽出範囲... かみちゃん 05/2/9(水) 22:33 発言[未読]
【22148】Re:フィールドオプションの設定で抽出範... モコ2 05/2/9(水) 23:16 お礼[未読]

【22142】フィールドオプションの設定で抽出範囲の...
質問  モコ2  - 05/2/9(水) 20:37 -

引用なし
パスワード
   エクセルをデータベースにして、皆が使えるようなシステムを作っています。
VBAの初心者である為に、フィルタのフィルタオプションの設定をマクロで実行し、そのコードをVBAでシステムに取り込んで作業をしています。
抽出結果や抽出条件については、システムを動かす度にレコード数等が変わるために、汎用的な記載が必要であるため、各所に変数を使用しています。
次のようなコードを記載したところ、「抽出範囲にフィールド名が無いか、または無効なフィールドです」というエラーが出ます。
VBAを使わずに実行すると問題無く動きます。
どのように書けば良いのか教えて下さい。

Range("A" & kaisi, "X" & owari).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
    Range("A3:C" & sentaku), CopyToRange:=Range("A" & mytaitol, "P" & mytaitol), Unique:=False

【22146】Re:フィールドオプションの設定で抽出範...
発言  かみちゃん  - 05/2/9(水) 22:27 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>次のようなコードを記載したところ、「抽出範囲にフィールド名が無いか、または無効なフィールドです」というエラーが出ます。
>VBAを使わずに実行すると問題無く動きます。

一般操作でできるならば、まずは「マクロの記録」をしてみて、それと比べてみて
ください。
変数の内容がよくわからないので、きちんと確かめていませんが、
Range("A" & kaisi, "X" & owari).AdvancedFilter
は、A〜X列を指定しているのに
CopyToRange:=Range("A" & mytaitol, "P" & mytaitol)
は、A〜P列までしか指定していないのはいいのでしょうか?
これを
CopyToRange:=Range("A" & mytaitol, "X" & mytaitol)
とすると、できるようですが・・・

【22147】Re:フィールドオプションの設定で抽出範...
発言  かみちゃん  - 05/2/9(水) 22:33 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>Range("A" & kaisi, "X" & owari).AdvancedFilter
>は、A〜X列を指定しているのに
>CopyToRange:=Range("A" & mytaitol, "P" & mytaitol)
>は、A〜P列までしか指定していないのはいいのでしょうか?
>これを
>CopyToRange:=Range("A" & mytaitol, "X" & mytaitol)
>とすると、できるようですが・・・

CopyToRange:=Range("A" & mytaitol)
だけでもできるようです。
いずれも、「マクロの記録」の結果と比べるとわかるかと思います。

【22148】Re:フィールドオプションの設定で抽出範...
お礼  モコ2  - 05/2/9(水) 23:16 -

引用なし
パスワード
   かみちゃん、いつもありがとうございます。
今日は夜警のおじさんが回って来たので帰らなければなりません。
明日確かめてみます。
おやすみなさい。

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