- ベストアンサー
エクセルVBAのFindメソッドを使って・・・
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- Excel VBAのFindメソッドについて
Excel VBAを勉強中の者です。 Findメソッドで、数字の入ったF5セルからF28セルの範囲から、 1という数字の入ったセルを検索したいと思い Sub test() Dim xRange As Range Set xRange = Range("F5:F20").Find(What:=1, LookIn:=xlValues) xRange.Select End sub としました。 しかし、このまま検索するとF6セルの12が検索されてしまいます。 他の数字では問題なく、対象の数字の先頭の数字が選択されます。 どうしてでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- vbaのFindメソッドで取得するにはどうすれば
A1に「あ」B1に「い」と入れて、 A2に「=A1&B1」としました。 この時、A2は「あい」と表示されます。 今回やりたいことは、 Sub test() Debug.Print Cells.Find(What:=" あい").Row End Sub で、2を返したいのですが、 実行時エラー91になってしまいます。 セル内に該当の文字列がないからだと思いますが、 数式でつなげた文字列を、 vbaのFindメソッドで取得するにはどうすれば良いでしょうか?
- ベストアンサー
- Excel(エクセル)
- VBAのFindメソッドのエラー理由
初歩的な質問ですがよろしくお願いいたします。 シート1のi行6列目の文字列をシート2の3列目から探してその行数をシート1のi行16列目に 引っ張ってくる記述をしたく、下記のようなコードを書いたところ1004のデバック表示がされました。下の記述をどうすれば正常に動くでしょうか。 Range(i, 16) = Worksheets(2).Range(Cells(5, 3), Cells(5, 3).End(xlsown)).Find(Cells(i, 6)).Row
- 締切済み
- Visual Basic
- エクセルVBAのReplaceメソッドについて
エクセル表内のある文字列をVBAのReplaceメソッドを使用して、別の文字列に一括変換したいと考えてます。引数で指定する『置換後の文字列』として該当セルの一つ上のセル(A2に対象文字列がある場合は、A1の値)を指定したいのですが、どのように指定したらよいのか分かりません。Replaceメソッドで置換後の文字列として一つ上のセルの値を指定する事は可能でしょうか。宜しくお願いします。
- 締切済み
- Visual Basic
- Find ヘルプの見方がわからない
ヘルプを見てもわからないので教えてください。 aaaaa@yahoo.co.jp で、「@」より左の文字列を取得したいので、 「@」が何文字目にあるかをVBAで調べたいです。 ヘルプでWorksheetFunction.Find メソッドを見てるのですが --------------------------------------------------------- 名前 必須/オプション データ型 説明 Arg1 必須 文字列型 (String) ワークシートの名前を指定します。 Arg2 必須 文字列型 (String) 範囲の名前を指定します。 Arg3 オプション バリアント型 (Variant) 検索を調整する引数の名前を指定します。 --------------------------------------------------------- と記載されているのですが Sub a() Dim i As Long i = Application.WorksheetFunction.Find() End Sub のFindの中にはどのように記載すればいいのでしょうか? そもそもArg1 の「ワークシートの名前を指定します。 」がまずわからないのですが。 VBAで行いたいので、ワークシートは関係ない気がします。 もしかして私が見てるヘルプはVBAのヘルプではないのでしょうか? ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAの自動計算について
エクセルVBAの自動計算について vbaの自動計算について教えてください。 D E F I 数量 仕様 容積 金額 1 仕様1 2.50 XXX 上記の表があります。 Eの仕様は3種類あり、別シートに以下のレート表があってそこから範囲内の容積にある単価を算出します。 その単価にF容積とD数量を掛けたものをI金額に表示して、次行に行き同じことを繰り返します。 レート表は以下の通りです。 H I J L 6 以上 未満 仕様1 仕様2 7 0.01 0.80 3000 3500 中略 13 5.01 6.00 10000 12000 よろしくお願い申し上げます。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAで質問です
下のような表を作っています。 A列に日付がある限り、B、C、D、E列それぞれの列に対して、 3行目以降のデータが検索値と同じであれば、そのひとつ上の行の 値をG、H、I、J列にそれぞれ上から順に入れていきたいのですが、 どのようになるでしょうか。 A1 月日 B1 検索値1・・・B3以降データ C1 検索値2・・・C3以降データ D1 検索値3・・・D3以降データ E1 検索値4・・・E3以降データ G2以降に検索値1で調べた値 H2以降に検索値2で調べた値 I2以降に検索値3で調べた値 J2以降に検索値4で調べた値 例えば、B1の検索値が1であり、B10に1があったとします。 この場合、ひとつ上のB9の値をG2に来るようにしたいのです。 説明下手ですが教えていただけないでしょうか。
- 締切済み
- オフィス系ソフト
- エクセル VBA
エクセルVBAで以下のようなデータがあります。 D列の文字列と右隣のE列の文字列の2つが入っているものをA列から探し、見つかったセルの上にセルを追加し、E列の右隣のF列に入っている文字列を代入したいです。 どのようなプログラムになりますか?
- 締切済み
- Visual Basic
- ExcelVBA Findメソッドで検索のスタート位置について
おせわになっております。 Findメソッドを用いて、先頭から順に値を検索しようとしています。 Set rngSearch = rngList.Find("ゴルフ", rngSearch, , xlPart) ↑ このような方法で、該当するものを一つ一つ探そうとしています。 つまり、仮に一列目で見つかったら、次は二列目以降から探そうと しています。 FindNextなどを使用しないのは、連続で求めるためではなく、 ボタンを押したときに一つずつ検索するからです。 しかし、この書式ではスタート地点にした、次のセルから検索する はずが、スタート地点に指定したセルから検索してしまい、 何度行っても同じセルばかりを検索して返してしまいます。 Offsetなどで一行ずつずらしても、同じ場所からしか検索が 始まりません。 これはなぜなのでしょうか? 念のため、他のメソッドなどでは決してrngSearch は代入等の 操作はしておりません。 ちなみに、同じメソッドの中で同じ書式を繰り返すと Set rngSearch = rngList.Find("ゴルフ", rngSearch, , xlPart) MsgBox rngSearch.Value Set rngSearch = rngList.Find("ゴルフ", rngSearch, , xlPart) MsgBox rngSearch.Value Set rngSearch = rngList.Find("ゴルフ", rngSearch, , xlPart) MsgBox rngSearch.Value Set rngSearch = rngList.Find("ゴルフ", rngSearch, , xlPart) MsgBox rngSearch.Value … うまくいくようなのです。一度でもメソッドを抜けるとうまくいか なくなるような感じです。 以上、わかりづらい説明で大変申し訳ありませんが、なにとぞお願い 致します。
- ベストアンサー
- Visual Basic
お礼
onlyromさんありがとうございました。思った通りの動作でした。 ひとりでここまで書けるかというと、書けませんが、確かに こちらの方が、初心者が勉強するならわかりやすいです。 ありがとうございました。