0

マクロは、ワークブックを開くと、セル "C27" に次のいずれかのテキストが含まれているかどうかを調べます: Location1、Location2、Location3、または Location4。その場合、テンプレートの 2 つのコピー ファイルがそれらの場所に保存され続けます。そうでない場合は、コンボボックスから正しい場所を選択するためにユーザーフォームが開きます。

ユーザーフォームが閉じられた後にチェックをリセットするにはどうすればよいですか。Unload me の後に Auto_Open を呼び出してみましたが、うまくいきませんでした。

大きい

 Sub Auto_Open()

With Range("B30")
.Value = Time
.NumberFormat = "h-mm-ss AM/PM"
End With

Dim FileName    As String
Dim FilePath    As String
Dim FileDate    As String

Select Case Range("C27").Value

    Case "Location1", "Location2", "Location3", "Location4"

        FilePath = "C:\Users\aholiday\Desktop\FRF_Data_Macro_Insert_Test"
        FileName = Sheets("Data").Range("C27").Text

        Application.DisplayAlerts = False

        ThisWorkbook.SaveAs FileName:=FilePath & "\" & FileName

        Dim FileCopyName    As String
        Dim FileCopyPath    As String
        Dim FileTime        As String

        FilePath = "C:\Users\aholiday\Desktop\Backup"
        FileName = Sheets("Data").Range("C27").Text
        FileTime = Sheets("Data").Range("B30").Text

        ThisWorkbook.SaveAs FileName:=FilePath & "\" & FileName & Space(1) & FileTime & ".xlsx", FileFormat:=xlOpenXMLWorkbook

        MsgBox "File was saved! Ready for Next Test, Please Exit."


    Case Else

        MsgBox "File was not saved, Please Insert The Correct Testing Location"

        UserForm.Show

    Exit Sub

End Select

    Application.DisplayAlerts = True

 End Sub

ユーザーフォーム

Private Sub UserForm_Initialize()

  'Empty TestLocation Box
   TestLocation.Clear

  'Fill TestLocation Box
  With TestLocation
  .AddItem "Location1"
  .AddItem "Location2"
  .AddItem "Location3"
  .AddItem "Location4"
  End With

End Sub

'---------------------

Private Sub Insert_Click()

Sheets("Data").Activate

Range("C27").Value = TestLocation.Value

End Sub

'--------------------

Private Sub CloseBox_Click()

Unload Me

End Sub
4

1 に答える 1

2

挿入ボタンに次のコードを使用します。

Private Sub Insert_Click()

   Sheets("Data").Range("C27").Value = TestLocation.Value
   Auto_Open
End Sub

モジュールに Auto_Open コードがある限り、コードは機能します (テスト済み)。

Auto_Open サブを ThisWorkbook に配置する場合は、それをモジュールに移動します。

次に、ThisWorkbook で次のコードを使用します。

Private Sub Workbook_Open()
    Auto_Open
End Sub

また:

Case "Location1", "Location2", "Location1", "Location4"

次のようにする必要があります。

Case "Location1", "Location2", "Location3", "Location4"
于 2015-08-13T19:04:33.787 に答える