0
我试图弄清楚这一点。在我的主要部分中,我称之为函数。不知何故,它结束了我在该函数结束时的运行。它显示“结束前”,从不显示“我发现了”有人知道问题是什么吗?VBA函数永远不会返回主Sub
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”才能执行。清除第一个对话框后,它应该继续运行。 –
我实际上点击确定按钮,这是运行结束。就像我说的“我做到了”永远不会在屏幕上显示 –
尝试使它成为一个'Sub'而不是'function' – Davesexcel