0
私はこれを理解しようとしています。私のメインサブでは、私は関数を呼び出します。どういうわけか、それはその機能の終了時に私の走りを終わらせました。 "Before end"と表示されず、 "I made it"と表示されません。VBA関数はメインサブに戻ってこない
Sub Main()
call CopyAndDelete()
msgbox "I made it out"
End Sub
Function CopyAndDelete()
Dim CopyFromWB As Workbook
Dim CopyToWB As Workbook
Dim wb As Workbook
Dim CopyThisWS As Worksheet
Dim ws As Worksheet
Dim Path As String
Dim FileName As String
Application.DisplayAlerts = False
Set CopyToWB = Workbooks("test.xlsm")
CopyToWB.Activate
For Each ws In ActiveWorkbook.Sheets
Select Case ws.Name
Case "A"
ws.Delete
Case "B"
ws.Delete
Case "C"
ws.Delete
Case "D"
ws.Delete
End Select
Next ws
Path = Application.GetOpenFilename(Title:="choose a file")
FileName = Right(Path, Len(Path) - InStrRev(Path, "\"))
For Each wb In Workbooks
If wb.Name = FileName Then
Workbooks(FileName).Close
End If
Next wb
Set CopyFromWB = Workbooks.Open(Path)
Set CopyThisWS = CopyFromWB.Worksheets(1)
CopyThisWS.Copy After:=CopyToWB.Worksheets(1)
ActiveSheet.Name = "New A"
CopyFromWB.Close
Application.DisplayAlerts = True
MsgBox "Before end"
End Function
それが効果的にブレークポイントですので、それは、モーダルです。だから、 "私はそれを作った"が実行される前に、 "Before end"メッセージで「OK」を押す必要があります。最初のダイアログボックスをクリアすると、実行が続行されます。 –
私は実際にOKボタンを押すと、それは実行の終了です。私が言ったように、画面には決して表示されませんでした。 –
'function'の代わりに' Sub'を作ってみてください。 – Davesexcel