|
▼かみちゃん さん:
仕事で出かけてまして確認が遅くなりました。
早急に最終動作確認させていただきます。
その前に最終行に書きました全角・半角入力の
方法はありませんか?
>こんにちは。かみちゃん です。
>>かみちゃんにチェック頂きたいのともっといい方法があれば
>>教えてください。
>
>私なら、以下のようにします。
>ポイントは、
> Range("A1").Value = Choose(Val(Rtn), "一般", "同業", "特別")
>の部分と、
>入力値が間違うと再入力を促すようにするエラーチェックをしています。
>また、
>変数Rtnの宣言もきちんとしておきます。
>
>Sub Main2()
> Dim Rtn As String
>
> Do
> Rtn = InputBox("1:一般 2:同業 3:特別のいずれかを入力してください")
> If Rtn = "" Then Exit Sub
> If Rtn >= "1" And Rtn <= "3" Then
> Range("A1").Value = Choose(Val(Rtn), "一般", "同業", "特別")
> Exit Do
> Else
> MsgBox "単価種別を入力しなおしてください。"
> End If
> Loop
>End Sub
うぅ〜なるほど・・・
やはりポイントが違いますね。
>違います。
>.Offset(, 1).Value = c.Offset(, 2).Value
>の左辺側である
>.Offset(, 1).Value
>は、
>With Target
> .Offset(, 1).Value
>ですので、今回の場合、
>B列の入力が行なわれたら、1列右隣のC列を右辺の値とするという意味です。
>
>一方、右辺側の
>c.Offset(, 2).Value
>は、
>商品マスターのA列(ちょっとわかりづらいかもしれませんが)を検索して見つか
>ったセルの2列右隣のC列の値ということになります。
やはりむずかしいですね
>
>どのような使い分けをなさるおつもりかわかりませんが、
>一応、すべてを商品マスターから取得するのであれば、
>以下の部分は、不要です。
>
> Set myRange = Range("A2", Cells(Cells.Rows.Count, 1).End(xlUp).Offset(-1)).Resize(, 5)
> a = myRange.Value
> Application.EnableEvents = False
> Range("C" & .Row).ClearContents
> Range("E" & .Row).ClearContents
> Application.EnableEvents = True
> For i = 1 To myRange.Rows.Count
> If hinmei = a(i, 1) And keijyou = a(i, 2) Then
> Application.EnableEvents = False
> Range("C" & .Row).Value = a(i, 3)
> Range("E" & .Row).Value = a(i, 5)
> Application.EnableEvents = True
> Exit For
> End If
> Next i
>
>また、上のコードを削除すると
>If .Value <> "" And Range("C" & .Row).Value = "" And Range("E" & .Row).Value = "" Then '◆
>と
>End If '◆
>の2行も意味のないコードになりますので、不要です。
>
>>最後にもう一つあるのですが
>>>MsgBox "単価種別が違います [" & Range("L1").Value & "]"
>>この条件とはどういう状態の時にでますか。
>
>L1の値が「一般」「同業」「特別」のいずれでもないときです。
>そういうことは絶対ないとはいえないですよね?
そうですねないとは言い切れません
>InputBoxで、「一般」「同業」「特別」以外の文字を入れたらどうなるでしょうか?
3択で行きます。また状況が変わったら相談させてください。
>また、キャンセルしたらどうなるでしょうか?
>言い始めるとキリがありません。。。
商品マスタなのですが(A,B列) 全角・半角(カタカナ・英字・数字)
は条件一致として見なすこと出来ないでしょうか。
|
|