0

Copier ルーチンが終了した場合、Private Sub 全体を終了させたい。したがって、DoDays ルーチンが呼び出されることはありません。

Sub Copier()
Dim x As String
Dim z As Integer
x = InputBox("Enter Number of Days in Month")
If x = "" Then
     MsgBox "User Pressed Cancel!" & vbCrLf & _
            "or did not enter a value!", vbOKOnly + vbInformation, _
            "Inputbox Result:"
     z = 10
     Exit Sub
ElseIf CInt(x) = 0 Then
     MsgBox "User Pressed Cancel!" & vbCrLf & _
            "or did not enter a value!", vbOKOnly + vbInformation, _
            "Inputbox Result:"
     z = 10
     Exit Sub
Else: End If
y = CInt(x) - 1
For numtimes = 1 To y
ActiveWorkbook.Sheets("Sheet1").Copy _
after:=ActiveWorkbook.Sheets("Sheet1")
Next

DoDays

End Sub



Private Sub COPY_NUMBER_Click()
COPY_NUMBER.BackColor = 12713921
Copier
' DoDays
COPY_NUMBER.BackColor = 12500670
COPY_NUMBER.Enabled = False
End Sub

ボタンが有効なままになるように文字通りプライベートサブを終了する必要があるため、コピアサブの DoDays への呼び出しは機能していないようです。

4

3 に答える 3

0

CopierこのプロシージャをCOPY_NUMBER_Clickイベント プロシージャにマージします。

Private Sub COPY_NUMBER_Click()
    COPY_NUMBER.BackColor = 12713921

    Dim x As String
    x = InputBox("Enter Number of Days in Month")
    If x = "" Then
         MsgBox "User Pressed Cancel!" & vbCrLf & _
                "or did not enter a value!", vbOKOnly + vbInformation, _
                "Inputbox Result:"
         Exit Sub
    ElseIf CInt(x) = 0 Then
         MsgBox "User Pressed Cancel!" & vbCrLf & _
                "or did not enter a value!", vbOKOnly + vbInformation, _
                "Inputbox Result:"
         Exit Sub
    End If
    y = CInt(x) - 1
    For numtimes = 1 To y
        ActiveWorkbook.Sheets("Sheet1").Copy _
                     After:=ActiveWorkbook.Sheets("Sheet1")
    Next

    DoDays

    COPY_NUMBER.BackColor = 12500670
    COPY_NUMBER.Enabled = False
End Sub
于 2017-08-30T20:53:34.913 に答える