什么是需要停止运行它似乎运行了很长一段时间?
我收到“溢出”消息。 代码正常工作,但运行了很长时间。 有什么build议么。
Sub Bill_Detail_Exp_Prem_Var() Dim LastRow As Long Dim wb1 As Workbook Dim i As Long Set wb1 = Workbooks("macro all client v.01.xlsm") LastRow = wb1.Sheets("Detail").range("C:C").Find("", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row For i = 7 To LastRow If wb1.Sheets("Detail").Cells(i, 15) <> 0 And wb1.Sheets("Detail").Cells(i, 16) = 0 Then wb1.Sheets("Detail").Cells(i, 1) = ((wb1.Sheets("Detail").Cells(i, 15))) Else wb1.Sheets("Detail").Cells(i, 1) = ((wb1.Sheets("Detail").Cells(i, 17)) * (wb1.Sheets("Detail").Cells(i, 15))) / (wb1.Sheets("Detail").Cells(i, 16)) End If Next i End Sub
这是有效的吗?
LastRow = wb1.Sheets("Detail").range("C:C").Find("", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
如果不是的话
LastRow = wb1.Sheets("Detail").range("C:C").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
你的支票
If wb1.Sheets("Detail").Cells(i, 15) <> 0 And wb1.Sheets("Detail").Cells(i, 16) = 0 Then
不检查这两个等于零。 实际上当你做0/0
时,错误Overflow
事实上发生了。
Dim LastRow As Long Dim wb1 As Workbook Dim i As Long Set wb1 = Workbooks("macro all client v.01.xlsm") LastRow = wb1.Sheets("Detail").Range("C:C").Find("", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row For i = 7 To LastRow Dim destinationCell As Range Set destinationCell = wb1.Sheets("Detail").Cells(i, 1) Dim parameterFifteen, parameterSixteen, parameterSeventeen parameterFifteen = wb1.Sheets("Detail").Cells(i, 15) parameterSixteen = wb1.Sheets("Detail").Cells(i, 16) parameterSeventeen = wb1.Sheets("Detail").Cells(i, 17) If parameterFifteen <> 0 And parameterSixteen = 0 Then destinationCell = parameterFifteen ElseIf parameterSixteen <> 0 Then destinationCell = parameterSeventeen * parameterFifteen / parameterSixteen Else 'something else ? End If Next i