有人可以帮忙解决这个问题吗?它会在第6行(Set rng = Sheet3.Range(Cells(1,i),Cells(1,j)).Select
)引发错误,但我不知道如何修复它。
Public Sub CommandButton1_Click()
Dim i As Integer
i = 3
Dim j As Integer
j = 5
Set Rng = Sheet3.Range(Cells(1, i), Cells(1, j)).Select
lAnswer = Application.WorksheetFunction.Sum(Rng)
Sheet1.Cells(5, 13).Value = lAnswer
End Sub
答案 0 :(得分:3)
您已收到语法问题的答案,但在使用用于定义Range.Cells properties范围的两个Range object时,我也会提醒您关于孤立的单元格引用。具体来说,他们的Range .Parent property是任意的。
data_base
这一行也可以写成,
Public Sub CommandButton1_Click()
Dim i As Long
Dim j As Long
Dim Rng As Range
Dim lAnswer As Double
i = 3
j = 5
with Sheet3
Set Rng = .Range(.Cells(1, i), .Cells(1, j))
end with
lAnswer = Application.WorksheetFunction.Sum(Rng)
Sheet1.Cells(5, 13).Value = lAnswer
End Sub
...但是With...End With statement整洁地清理它。如果不指定.Cells的父级,则存在尝试在Sheet3上定义包含来自另一个工作表的单元格的范围的风险。我意识到这是一个命令按钮,任意单元格范围的父母应该隐含地是包含单击按钮的工作表,但是你为.Range定义了Sheet3,所以良好的编码实践要求你明确地完成练习将Sheet3定义为嵌套.Cells的父级。
答案 1 :(得分:2)
只需删除'选择'该行的一部分。
Public Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
Dim Rng As Range
Dim lAnswer As Long
i = 3
j = 5
Set Rng = Sheet3.Range(Cells(1, i), Cells(1, j)) 'remove '.select'
lAnswer = Application.WorksheetFunction.Sum(Rng)
Sheet1.Cells(5, 13).Value = lAnswer
End Sub