• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データ検索について)

データ検索について

このQ&Aのポイント
  • シートAとシートBを使用し、ユーザーフォームで商品データを検索する方法についてのコードです。
  • コードの一部がデバッグエラーになっており、正常に機能しないため、修正方法を教えて頂きたいです。
  • 10kg、20kg、100kgの値が数字に変換されない問題もあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.2

>Set SearchArea = .Sheets("商品データ").Range(.Range("A1"), .Range("A1").End(xlDown)) すいません、この部分に間違いがありました。 Set SearchArea = .Range(.Range("A1"), .Range("A1").End(xlDown)) としてください。

fumfumponp
質問者

お礼

ありがとうございます。 反応しました! 1歩前へ進むことができました。 また、If~部分もできました。 そこで一つ質問なのですが、 If~部分で 文字(りんご、みかん等)を 数字で入力させることも可能なのでしょうか? 例 りんご=0、みかん=1、いちご=3 よろしくお願いします。

その他の回答 (1)

  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.1

>下記がデバック(黄色)が出てしまいます。 > >Set SearchArea = Sheets("商品データ").Range(Range("A1"), Range("A1").End(xlDown)) 商品データシートが表示されている状態であれば問題ありませんが、別シートが表示された状態ではエラーになります。 With Sheets("商品データ") Set SearchArea = .Sheets("商品データ").Range(.Range("A1"), .Range("A1").End(xlDown)) End With と変更する > If~が機能してないようです。 10kg 10Kg 10KG 10kg など全て別の文字として扱われます。 Sheet中の表記を統一するのはもちろんのこと、万が一別表記が現れても対応するのであればStrConvを用いて同一表記に変換したのちIf文で評価という流れを取ります。 Weight = Sheets("シートA").Cells(lRow, "G").Value Weight = StrConv(Weight, vbNarrow) '半角化 Weight = StrConv(Weight, vbLowCase) '小文字化 If Weight = "10kg" Then txt重さ.Value = "0" ElseIf Weight = "20kg" Then txt重さ.Value = "1" ElseIf weight = "100kg" Then txt重さ.Value = "2" End If

fumfumponp
質問者

お礼

Masa2072さん、ありがとうございます。 しかし、 >商品データシートが表示されている状態であれば問題ありませんが、別シートが表示された状態ではエラーになります。 With Sheets("商品データ") Set SearchArea = .Sheets("商品データ").Range(.Range("A1"), .Range("A1").End(xlDown)) End With と変更する が変更させたのですが、どうしてもデバックエラーがまだ出てしまいます。なぜなのでしょうか? お手数お掛けしますが、よろしくお願いします。 ちなみにIf~はまだ確認取れていません。 すみません。上記エラーが前提になってしまうので・・・。