ここから本文です

エクセルVBAで質問です。 文字列がシートのとある範囲内(1列で複数行)に...

oto********さん

2018/11/317:22:29

エクセルVBAで質問です。

文字列がシートのとある範囲内(1列で複数行)にある文字列と一致するものか否かを判定するため、次のような式を作りました。

If Application.WorksheetFunction. _
Match("*" & 判定する文字列 & "*", "範囲名", 0) > 0 Then ・・・

としたところ「WorksheetFunctionクラスのMatchプロパティが取得できません」とのエラーが出てしまいます。VBA上ではなくワークシート上では範囲名のことろを""で囲まないと正しく動作するのでVBA上でもそうすると、「変数が定義されていません」となってしまいます。

解決策をご教示ください。

閲覧数:
57
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

yas********さん

2018/11/317:45:15

はじめまして~

Range("範囲名")
のように記述します。

一致するかどうかを調べるなら、CountIf関数を使えば良いです。
Match関数ですと、無いときにエラーになるし、行位置を取得する必要もないからです。

WorksheetFunction.Match("*" & 判定する文字列 & "*", Range("範囲名"), 0) Then

WorksheetFunction.CountIf(Range("範囲名"), "*" & 判定する文字列 & "*") Then

> 0 は記述不要です。

いかがですか~

質問した人からのコメント

2018/11/3 19:01:25

CountIf でうまくできました。
ありがとうございました。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる