首页 > 解决方案 > 查找文本值、偏移行、输入公式和复制

问题描述

在我的宏中,我有一个 Excel 表。

第 1 步:找到始终位于 C 列中的文本:“所有其他”。

第 2 步:在 D 列上方的行中输入求和公式 - (0,1)。

第 3 步:对未知范围求和,从 D 列开始,向下 3 行,最后一行数据引用 A 列。

第 4 步:复制公式并将其粘贴到 E 列 - (0,2)?

以下似乎不起作用,因为求和公式从 C 列开始,向下 3 行,而不是 D 列。

Dim Wb As Workbook
Dim Ws As Worksheet
Dim cOther As Range
Dim DataLastRow As Long

For Each Ws In ActiveWorkbook.Worksheets
With Ws
 If .Index <> 1 Then

 DataLastRow = .Range("A" & .Rows.Count).End(xlUp).Row

 Set cOther = .Range("C:C").Find("All Other", LookIn:=xlValues, lookat:=xlWhole)

 cOther.Offset(0, 1).Formula = "=SUM(" & cOther.Offset(3, 1).Address & ":" & .Cells(DataLastRow, 3).Address & ")"


 cOther.Offset(0, 1).Copy cOther.Offest(0, 2)

End If
End With
Next Ws

示例:在 Sheet2 中,“所有其他”在 (3, 20) 中。 DataLastRow确实 = 310

当我将鼠标悬停在公式行的开头时,会显示:cOther.Offset(0,1).Formula = $C$23:$D$310

但是,当我将鼠标悬停在上面时cOther.Offset(3,1).Address说:=$D$23

给出运行时错误“ cOther.Offset(0, 1).Copy cOther.Offest(0, 2)438”:对象不支持此属性或方法

标签: excelvba

解决方案


推荐阅读