『ユーザーフォームでコンボボックスとテキストボックスを連動させたい』(素焼き)
ユーザーフォーム上のComboBox2の値を選択したら、TextBox3の値を検索して表示するマクロを作りたいのですが上手くいきません。
下記で特にエラーは出ませんが表示されません?
何かお気づきの点がありましたら教えてください。
Private Sub ComboBox2_Change()
Dim myRange As Range Dim rngSearch As Range
Set myRange = ActiveSheet.Range("C8:I71") Set rngSearch = myRange.Find(What:=ComboBox2.Value, LookAt:=xlPart)
If Not rngSearch Is Nothing Then 'ヒットした値をテキストボックスにセット TextBox3.Value = ActiveSheet.Cells(rngSearch.Row, rngSearch.Column + 3).Value End If End Sub
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
Private Sub ComboBox2_Change() Dim rngSearch As Range
Set rngSearch = ActiveSheet.Range("C8:I71").Find(What:=ComboBox2.Value, LookAt:=xlPart) If Not rngSearch Is Nothing Then 'ヒットした値をテキストボックスにセット TextBox3.Value = rngSearch.offset(,3).Value End If End Sub
とりあえず【rngSearch】が思った通りのセルなのか、確認してはどうでしょうか?
あと、LookInが省略されているのも少々気になります。
(もこな2 ) 2024/04/23(火) 20:28:17
Dim myRange As Range Dim rngSearch As Range Set myRange = ActiveSheet.Range("C8:L71") Set rngSearch = myRange.Find(What:=ComboBox2.Value, LookIn:=xlValues, LookAt:=xlPart) If Not rngSearch Is Nothing Then 'ヒットした値をテキストボックスにセット TextBox3.Value = Cells(rngSearch.Row, rngSearch.Column + 1).Value End If 検索結果が「%」だったら 'ヒットした値をテキストボックスにセットを 「TextBox3.Value = Format(Cells(rngSearch.Row, rngSearch.Column + 1), "0%")」へ 切り替えて実行したいのですがどのように追記変更したら良いか教えてください。 (素焼き) 2024/04/30(火) 20:49:58
■1
>検索結果が「%」だったら
〜Find(What:=ComboBox2.Value,〜 ~~~~~~~~~~~~~~~
↑はどのようなものを部分一致検索するつもりなんですか?
■2
なんで↓のように回りくどい書き方にしたいのですか?
Cells(rngSearch.Row, rngSearch.Column + 1).Value
■3
>下記をコードの検索結果が「数値」だったら
「■1」と被りますが、どのような"セルの値"が想定されるのでしょうか?
数値じゃない場合、数値の場合、それぞれのパターンを5ずつくらい示せませんか?
それとも、セルの"表示形式"のことを言っているのでしょうか?
(もこな2) 2024/05/01(水) 07:50:30
ちょっと勉強に参加です
これって、見つかった右隣のセルの数値のパターンが、整数と%表記とあるとしたら それも分岐するってことかしら?
ただの 0値と、0% もしくは 0.0% も分岐するんだろか? だとしたらこうとかなん?
If rngSearch.Offset(0, 1).NumberFormatLocal Like "*%" And _ rngSearch.Offset(0, 1) = 0 Then MsgBox "数値が、0%だよ〜ん!! でどうするの?" End If (あみな) 2024/05/01(水) 08:13:44
あみなさん ありがとうございます。
If rngSearch.Offset(0, 1).NumberFormatLocal Like "*%" And _
rngSearch.Offset(0, 1) = 0 Then TextBox3.Value = Format(Cells(rngSearch.Row, rngSearch.Column + 1), "0%") Else TextBox3.Value = Cells(rngSearch.Row, rngSearch.Column + 1).Value End If としてみましたが検索対象セル「20%」が「0.195022374202142」と表示されます。 何処が違うのか教えていただけませんでしょうか。 (素焼き) 2024/05/01(水) 14:17:38
>検索対象のセルが「10%」「50%」「20%」「150%」「200%」は、
上記の%値と違ったらどうするのでしょうか? とりま表示だけ%にしてみました。
Private Sub ComboBox2_Change() Dim myRange As Range Dim rngSearch As Range Set myRange = ActiveSheet.Range("C8:L71") Set rngSearch = myRange.Find(What:=ComboBox2.Value, LookIn:=xlValues, LookAt:=xlPart) If Not rngSearch Is Nothing Then If rngSearch.Offset(0, 1).NumberFormatLocal Like "*%" Then TextBox3.Value = Format(rngSearch.Offset(0, 1).Value, "0.0%") '%表示 Else TextBox3.Value = rngSearch.Offset(0, 1).Value '整数表示 End If End If End Sub
※"0.0%" ←ここは好きにしてください。 (あみな) 2024/05/01(水) 15:47:26
(素焼き) 2024/05/01(水) 16:13:15
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.