- ベストアンサー
Excel VBA ""を含む関数を使うには
Excel VBA ""を含む関数を使うには お世話になっております。 Excel VBAでMatch関数を使って下記のようにしたいのですが、 受け付けてもらえません。 n = Application.WorksheetFunction.MATCH("小計",range("B3:B10"),0) "小計"を""小計""と二重でくくれば良いような気がしたのですが、だめです。 どうすればよいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>"小計"を""小計""と二重でくくれば良いような気がしたのですが、だめです。 セルに対しては、基本的には、そういう" "で挟むこと自体はひとつで良いはずです。 >n = Application.WorksheetFunction.Match("小計", Range("B3:B10"), 0) (カッコに全角が入っていたようですが) 意外に、Match関数を、VBAでWorksheetFunction で使う方法は難しいと思います。 ご存知ならよいのですが……。 Sub Test1() Dim n As Long On Error Resume Next n = 0 '一回きりならいりません n = Application.WorksheetFunction.Match("小計", Range("B3:B10"), 0) On Error GoTo 0 If n <> 0 Then MsgBox n Else MsgBox "行数が見つかりません。", vbExclamation End If End Sub '---------------------- '私のスタイル Sub Test2() Dim n As Variant n = Application.Match("小計", Range("B3:B10"), 0) If Not IsError(n) Then MsgBox n Else MsgBox "行数が見つかりません。", vbExclamation End If End Sub
その他の回答 (1)
- kybo
- ベストアンサー率53% (349/647)
セルには「小計」とだけ入力されているなら、記載の n = Application.WorksheetFunction.Match("小計", Range("B3:B10"), 0) で正常動作します。 セルに「"小計"」と入力されているなら、"を3重にします。 n = Application.WorksheetFunction.Match("""小計""", Range("B3:B10"), 0)
お礼
ありがとうございました。 記述自体はあっていたようで、今度はうまくいきました。 全角かっこのせいでしょうか・・? エラー処理を組み合わせたほうが万全ということですね。 勉強になりました。