0
私が使用しているコード全体が非常に長いので、スペースを節約するために最初のサブを省略しています。この例では、「New York University」、「NYU」、または「New York Univ」の場合は、列Oにある場合は、別のSelect Caseルーチンを含むボタンを持つユーザーフォームが表示されます。しかし、frmNYUのuserformから呼び出されたSubを実行すると、最初のFillIn Subでケースを実行し続ける必要があります。VBA - ユーザーフォーム内で別のSelect Caseを呼び出した後にSelect Caseを再開する
Sub FillIn()
Dim LastRow As Long
Dim i As Long
LastRow = Range("O" & Rows.Count).End(xlUp).Row
For i = 84 To LastRow
If Range("K" & i) Like "B*" Or Range("K" & i) Like "M*" Or Range("K" & i) Like "D*" Then
Select Case Range("O" & i)
Case "University of Florida"
Range("N" & i) = "0761"
Case "University of North Texas"
Range("N" & i) = "1612"
Case "New York University", "NYU", "New York Univ."
frmNYU.Show
End Select
End If
End Sub
ここでは、frmNYUユーザーフォームのボタンの1つのサブです。
Private Sub CommandButton1_Click()
On Error GoTo Terminate
Dim LastRow As Long
Dim i As Long
LastRow = Range("O" & Rows.Count).End(xlUp).Row
For i = 84 To LastRow
If Range("K" & i) Like "B*" Or Range("K" & i) Like "M*" Or Range("K" & i) Like "D*" Then
Select Case Range("O" & i)
Case "New York University", "NYU", "New York Univ."
Range("N" & i) = "1234"
End Select
End If
Next i
Terminate:
Unload Me
End
End Sub
ユーザーフォーム内からSelect Caseを実行すると、元のFillIn Subの実行が再開されないという問題があります。私は間違って何をしていますか?
さて、私はそこに "End"を入れてループを止めました。それがなければ、元のSubで見つかった一致ごとにユーザーフォームがポップアップ表示されます。 – Robby
それが、FillInでコードを再開しない理由です。ユーザーフォームは毎回ポップアップしています。これはコードが書かれている方法であるからです。 Forループ内でユーザーフォームを表示しています。 –
私はそれを理解していますが、それを実現するためにはどのような変更が必要ですか?私は 'On Error Resume Next'を使用しようとしましたが、それは助けになりません。 – Robby