Excel可以使用单元格值作为参考来查找行和列吗?

时间:2014-05-29 10:12:35

标签: excel excel-vba ms-office vba

我正在使用Excel 2010。

我有像

这样的列

Start_Sum End_Sum ------ 1999 - 2000 - 2001 --- 2002 --- 2003 --- 2004 --- 2005

2000 ------ 2003 ------------- 200 --- 140 - 160 ----- 368 ---- 892 ----- 213 - ---- 637

总和: - 1560

以上显示的是我的Excel表格的示例。 现在,当用户编辑开始和(2000)结束日期(2003)时,我需要重新计算总值(1560)。 总而言之,我需要知道像= SUM(E15:H15)

这样的位置

现在有没有像2001这样的标题名称,我可以找到它的列和行 例如2001年是在F14 有没有可用的Excel功能?

很抱歉我有使用---行间距。我无法正确格式化这个问题。 在此先感谢:)

2 个答案:

答案 0 :(得分:1)

如果您的意思是按公式进行,可以使用以下内容:

= SUM(INDIRECT( “R2C” &安培; MATCH(A2; 1:1; 0)及 “:R2C” &安培; MATCH(B2; 1:1; 0); FALSE))

enter image description here

使用VBA,您可以这样做:

Option Explicit

Sub MySum()

Dim wb As Workbook
Dim sh As Worksheet
Dim rn As Range
Dim cl1 As Range
Dim cl2 As Range
Dim sFind1 As String
Dim sFind2 As String
Dim sRes As String

sFind1 = "2000"
sFind2 = "2003"

Set wb = ThisWorkbook
Set sh = wb.Sheets("Sheet1")
Set rn = sh.Range("1:1")
Set cl1 = rn.Find(sFind1)
Set cl2 = rn.Find(sFind2)

sRes = Application.WorksheetFunction.Sum(sh.Range(cl1.Offset(1, 0), cl2.Offset(1, 0)))

sh.Range("B5").Value = sRes

End Sub

答案 1 :(得分:1)

或另一个公式(电子表格,如前面的答案)

=SUM(OFFSET($C$1;1;MATCH(A2;D1:I1;0);1;MATCH(B2;D1:I1;0)-MATCH(A2;D1:I1;0)+1))