###困っていること
Call文にて移動したSubの処理をしている際に、EndSubに到達する前に、元のSubに戻ってしまいます。
戻るのを禁止してSubの処理を継続する場合には、どのような記述が必要ですか?
Private Sub Worksheet_Change(ByVal Target As Range) Select Case ActiveCell.Column Case 1 '配達先情報を処理する Call Haitatsu Case 2, 3 ’品名の処理をする Call nimotsu End Select End Sub
Call文にて標準モジュールに記述したnimotsuというSubに移動します。
'品目コードに基づき用度品名を出力、もしくは、用度品名に基づき品目コードを出力する Public Sub nimotsu() 'アクティブ(品目コードか用度品名を設定した)セルの行・列番号を変数に取得する ro = ActiveCell.row: co = ActiveCell.Column Select Case co '商品コードが指定された場合 Case 2 '選択された商品コードを変数に記録する num(0) = ActiveCell.Value If num(0) <> "" Then '荷物一覧シートに移動する Set sheet1 = Worksheets(3): sheet1.Activate '1行目の商品コードを変数に記録する i = 1: num(1) = Cells(i, 1) '指定された商品コードと一覧の商品コードが一致するまで繰り返す Do While num(0) <> num(1) '次の行に移動する i = i + 1: num(1) = Cells(i, 1) Loop '一覧に記載されている品名を変数に記録する mei(1) = Cells(i, 2).Value '1の入数を変数に記録する Contents = Cells(i, 3).Value '配達できる上限値を変数に記録する Limit = Cells(i, 4).Value Set sheet1 = Worksheets(1): sheet1.Activate Cells(ro, 3).Value = mei(1) Cells(ro, 4).Value = Contents Cells(ro, 5).Value = Limit End If End Select nimotsuの処理を行っていると、WorkSheet(1)に戻って、1行処理しただけで、元のSubに戻ってしまいます。 End Sub
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/01 11:52