【发布时间】:2018-01-31 02:51:36
【问题描述】:
祝大家今天好!
我目前正在编写转置一些数据的代码。我当前的代码问题是即使没有错误也会弹出“ErrMsg”。如果我在“On Error GoTo ErrMsg”之后放置“Exit Sub”,整个模块将无法继续,我也无法调用下一个模块。希望有人可以在这里帮助我!
我下面的代码运行良好,但即使没有错误,它也会显示 MsgBox。
Sub Five_Transpose()
Dim LPID As Range
Dim InvestorName As Range
Dim DataTableX As ListObject
Dim Rng As Range
Dim rngB As Range
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = "Funds Table"
Sheets("Filtered Data").Copy After:=ActiveSheet
ActiveSheet.Name = "X"
On Error GoTo ErrMsg
With Sheets("X")
Set DataTableX = ActiveSheet.ListObjects(1)
DataTableX.Name = "DataTableX"
.Range("DataTableX[#All]").RemoveDuplicates Columns:=2, Header:=xlYes
.Range(Range("A1"), Range("A1").End(xlDown)).Copy Destination:=Sheets("Funds Table").Range("B4")
.Range(Range("B1"), Range("B1").End(xlDown)).Copy Destination:=Sheets("Funds Table").Range("A4")
.Range("DataTableX[#All]").RemoveDuplicates Columns:=4, Header:=xlYes
Set LPID = .Cells.Range(Range("C1"), Range("C1").End(xlDown))
Set InvestorName = .Cells.Range(Range("D1"), Range("D1").End(xlDown))
End With
LPID.Copy
Sheets("Funds Table").Range("B2").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
InvestorName.Copy
Sheets("Funds Table").Range("B1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Sheets("Funds Table").Select
Set Rng = Range(Range("B1:B3"), Range("B1:B3").End(xlToRight))
Set rngB = Range(Range("B5"), Range("B5").End(xlDown))
With Rng.Borders
.LineStyle = xlContinuous
.ThemeColor = 6
.TintAndShade = 0
.Weight = xlThin
End With
With rngB.Borders
.LineStyle = xlContinuous
.ThemeColor = 6
.TintAndShade = 0
.Weight = xlThin
End With
With Range("B3")
.Font.Bold = "True"
.Value = "Funds with IRR"
.Interior.Pattern = xlSolid
.Interior.ThemeColor = xlThemeColorAccent2
End With
Sheets("X").Delete
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
ErrMsg:
MsgBox ("There are no funds that are within 3 Quarters from now"), , "Message Box:"
Call Six_Continue
End Sub
【问题讨论】:
-
你能打印出
Err.Number吗?可能是0,其实没有报错,但是还是会提示msgbox -
只需将
Exit Sub放在ErrMsg:之前。