【发布时间】:2020-04-21 20:01:29
【问题描述】:
我还有另一个 VBA 问题。
我在 Excel 中有一个表格,我想查找文本:“所有其他”将始终位于 B 列中,但可能不在同一行 #。
找到“所有其他”单元格后,我想在 (0,1) 的下一列中输入求和公式。
该公式将从 Activecell 向下 3 行到数据末尾的未知范围求和。
我收到一个错误:无效或不合格的参考。
PrintScreen:
我目前有:
Dim ws As Worksheet
Dim aOther As Range
Dim DataLastRow As Range
Set ws = ActiveSheet
Set DataLastRow = ws.Cells.Range(ws.Rows.Count, 1).End(xlUp).Rows
Set aOther = ws.Range("B:B").Find("All Other", LookIn:=xlValues, lookat:=xlWhole)
ActiveCell.Offset(0, 1).Formula = "=SUM(" & .Offset(3, 0) & DataLastRow & ")"
【问题讨论】:
-
aOther.Offset(0, 1).Formula = "=SUM(" & aOther.Offset(3, 0).Address & ":" & ws.cells(DataLastRow,3).Address & ")" -
@ScottCraner -
DataLastRow是一个范围......所以是的...... -
@BigBen 我错过了:
aOther.Offset(0, 1).Formula = "=SUM(" & aOther.Offset(3, 0).Address & ":" & DataLastRow.Address & ")"并删除了Set DataLastRow行上的.Rows。 -
那么您必须将其更改为 C 列右侧(
DataLastRow在 A 中)? -
@BigBen 是的:
Set DataLastRow = ws.Cells.Range(ws.Rows.Count, 3).End(xlUp)