現在,VBAにてシートの比較プログラムを行っておりますが,その中で検索範囲を示すRangeに名前を使用したいのですがエラーでうまくいきません。
エラーは
「実行時エラー:1004
WorksheetFunctionクラスのMatchプロパティが取得できません」
とでます。
記述は
Application.WorksheetFunction.Match(Cells(r, 132), Range("リース型具Key1"), 0)
としており,”リース型具Key1”が事前に名前登録してある名前です。
方法をご存知の方,よろしくお願いします。
No.3ベストアンサー
- 回答日時:
シートが異なるとは思ってもいませんでした。
例えば、Cells(r, 132) が Sheet2 にあれば、下記のようにすればいいはずです。
シートを指定していなければ、マクロを実行したシートのCells(r, 132)になっているはずです。
Application.WorksheetFunction.Match(Worksheets("Sheet2").Cells(r, 132), Range("リース型具Key1"), 0)
それから、Match関数で結果が求まる場合は問題ありませんが、結果が求まらない場合の処理も考慮すべきでしょう。下記は参考例です。
Sub myTest01()
Dim shtNo As Integer
shtNo = 2
Dim ws2 As Worksheet
Dim ws3 As Worksheet
Set ws2 = Worksheets("Sheet" & shtNo)
Set ws3 = Worksheets("Sheet3")
On Error GoTo ErrorTrap
MsgBox Application.WorksheetFunction.Match(ws2.Cells(2, 2), _
ws3.Range("リース型具Key1"), 0)
'
'// 色々な処理 //
'
Set ws2 = Nothing
Set ws3 = Nothing
Exit Sub
ErrorTrap:
MsgBox ws2.Cells(2, 2) & "は見つかりません。"
Resume Next
End Sub
この回答への補足
nishi6さん,さっそく有難う御座います。
ご指摘の方法で試しました。うーん,うまくいきません。
Match(ws3.Cells(2,2),ws3.Range("リース型具")・・のように名前が参照する範囲セルのシートと同様のシートのCellを指定するとOKですが,ws2.Cellsとしたら同様のエラーが発生します。仕様なのでしょうか。
ちなみに,アクティブシートをws2にしていることは関係ないでしょうか。
nishi6さん
どうやら私の理解不足で,On Errorを考慮していないとMATCHしなかったときにエラーになることが判りました。ご指摘のエラー文を入れたことでOKになりました。有難う御座いました。
No.2
- 回答日時:
Cells(r, 132)が『リース型具Key1』のどの列を見ているかが問題です。
『リース型具Key1』の一番左の列を見ているなら、
Application.WorksheetFunction・・・・・・ Range("リース型具Key1").Columns("A:A"), 0)
左から2列目を見ているなら、
Range("リース型具Key1").Columns("B:B")
とします。3列目以降も同様に指定します。
この回答への補足
ご回答有難う御座います。大変参考になり,さっそく試してみましたが,やはりエラーは解消されませんでした。いろいろ行ってみた結果,Cells(r,132)のシートと”リース型具Key1”を示す範囲のシートが異なる場合にNGとなります。Cells(r,132)を”リース型具Key1”が定義されている同一シートに変更するとOKでした。シート間での名前の参照はサポートされていないのでしょうか。
補足日時:2004/03/09 16:29No.1
- 回答日時:
Range("リース型具Key1") って、A1:B10 のように複数列になってませんか?そういう仕様なのかよくわかりませんが、A1:A10 のような1列のみに範囲だったら大丈夫ですが、複数列の範囲だとエラーになるようです。
(名前で参照するか "A1:A10" のような範囲指定で参照するかは関係ないようです。)お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- Visual Basic(VBA) worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応 3 2022/12/27 22:27
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) ExcelVBAで、型が一致しませんのエラーについて 3 2023/06/20 09:51
- Excel(エクセル) シート名を簡単に書く方法があれば教えてください。 4 2023/08/24 12:40
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Excel(エクセル) エクセル VBAの構文について 2 2023/02/10 18:26
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
プリン+醤油=ウニみたいな組み合わせメニューを教えて!
プリンと醤油を一緒に食べると「ウニ」の味がする! というような意外な組み合わせから、新しい味になる食べ物って色々ありますよね。 あなたがこれまでに試した「組み合わせメニュー」を教えてください。
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
matchプロパティを取得できません…と出ます。
PowerPoint(パワーポイント)
-
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
ApplicationとWorksheetFunctionの違い
Visual Basic(VBA)
-
-
4
vbaでworksheetfunctionでの複数関数がエラーになります
Visual Basic(VBA)
-
5
最も近い数値のあるセルを探す
Excel(エクセル)
-
6
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
エクセルエラー13型が一致しま...
-
ExcelVBA Range クラスの Page...
-
VBAでのエラー
-
【Excel VBA】マクロをボタンに...
-
EXCEL VBAマクロ中断でデバッグ...
-
AccessVBAでExcelを起動し、罫...
-
マクロについて教えてください...
-
「アプリケーション定義または...
-
EXCEL/VBAで、自分のPCだけエラ...
-
なぜこんな初歩的なVBAのIf文で...
-
プロシージャ名の取得
-
OLEDB.NETで接続できない
-
エクセルVBA、フリーフォームで...
-
「定数式が必要です。」って何...
-
VB6+SQL サーバー 2000 で 実行...
-
Excelで下記のようにマクロを作...
-
DataGridView からの値取得に関...
-
なぜエラーになるのでしょうか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
実行時エラー3001「引数が間違...
-
VBS実行時エラー オブジェクト...
-
【Excel VBA】マクロをボタンに...
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
VBSで変数の宣言はできないので...
-
VBAでのエラー
-
実行時エラー -'-2147417848
-
EXCEL VBAマクロ中断でデバッグ...
-
なぜエラーになるのでしょうか...
-
ADODB.Streamを使用してUTF-8を...
-
VBAのコードがエラーになっ...
-
Outlook.ApplicationをCreateOb...
-
VB6+SQL サーバー 2000 で 実行...
-
ExcelVBAで、ユーザー定義型は...
-
実行時エラー48発生時のDLL特定...
おすすめ情報