我遇到问题让我的If else语句工作,如下所示。
我想从G5向下总结所有东西,但如果G6是空白的(即只有一个条目),那么我只想总和G5。所以我想出了下面的代码。
然而,我收到错误,说没有If的Else。但是,如果我把if放在else之后,我会得到另一个语法错误。
显然我错过了什么,但无法弄清楚出了什么问题。
Sub TotalR()
Sheets("Data").Select
Dim Rng As Range
Dim c As Range
If IsEmpty(Range("g6")) = True Then Range("g6").Select
ActiveCell.Formula = "=sum(g5)"
Else:
Set Rng = Range("g5:g" & Range("g5").End(xlDown).Row)
Set c = Range("g5").End(xlDown).Offset(1, 0)
c.Formula = "=SUM(" & Rng.Address(False, False) & ")"
End If
End Sub
答案 0 :(得分:0)
移动范围(“g6”)。选择下一行(否则该行是完整的If语句)。另外,从Else行中删除冒号。
Sub TotalR()
Dim Rng As Range
Dim c As Range
Sheets("Data").Select
If IsEmpty(Range("g6")) = True Then
Range("g6").Select
ActiveCell.Formula = "=sum(g5)"
Else
Set Rng = Range("g5:g" & Range("g5").End(xlDown).Row)
Set c = Range("g5").End(xlDown).Offset(1, 0)
c.Formula = "=SUM(" & Rng.Address(False, False) & ")"
End If
End Sub
答案 1 :(得分:0)
错误的引起与@Scott Craner提到的完全相同,你需要拆分为2行:
If IsEmpty(Range("g6")) = True Then
Range("g6").Select
ActiveCell.Formula = "=sum(g5)"
但是,如果您远离Select
和ActiveCell
,最好使用引用的对象Worksheets
和Range
。
<强>代码强>
Option Explicit
Sub TotalR()
Dim Rng As Range
Dim c As Range
With Sheets("Data")
If IsEmpty(.Range("G6")) Then
.Range("G6").Formula = "=Sum(G5)"
Else
Set Rng = .Range("G5:G" & .Range("G5").End(xlDown).Row)
Set c = .Range("G5").End(xlDown).Offset(1, 0)
c.Formula = "=SUM(" & Rng.Address(False, False) & ")"
End If
End With
End Sub