除了常量之外,公式还可以包含对同一工作表或其他工作表中其他单元格或单元格区域的引用。支持以下引用样式。
A1 样式的单元格引用是单元格所属的列标题和行标题的组合 - 列字母后跟行号。例如,C10 是指位于 C 列和第 10 行交点处的单元格。默认情况下,列标题和行标题显示在工作表的顶部和左侧(请参见如何:显示和隐藏行标题和列标题)。
Vb.Net
workbook.Worksheets(0).Cells("A1").Formula
= "=
B1+C1"
C# |
workbook.Worksheets[0].Cells["A1"].Formula = "= B1+C1"; |
在公式中,还可以使用对位于其他工作表中的单元格的引用。为此,请在单元格引用之前指定工作表名称,并用感叹号 (!)
分隔它们。
Vb.Net
workbook.Worksheets("Sheet1").Cells("H15").Formula
= "=
Sheet2!C3 + Sheet3!C5"
C# |
workbook.Worksheets["Sheet1"].Cells["H15"].Formula = "= Sheet2!C3 + Sheet3!C5"; |
公式中的相对单元格引用基于引用单元格和包含公式的单元格的相对位置。 为了保持此相对位置不变,每次将公式复制或移动到另一个单元格时,都会自动更改单元格引用。例如,如果将具有单元格 A1 相对引用的公式从单元格 B2 复制到 C3,则引用将自动从 A1 更改为 B2。
Vb.Net
workbook.Worksheets(0).Cells("B2").Formula
= "=
A1"
C# |
workbook.Worksheets[0].Cells["B2"].Formula = "= A1"; |
公式中的绝对单元格引用始终引用特定单元格,如果将公式复制或移动到另一个单元格,则不会更改。在绝对单元格引用中,列字母和行号前面带有“$”符号。例如,如果将绝对引用单元格 A1 的公式从单元格 C3 复制到 D4,则引用将保持不变
($A$1)。
Vb.Net
workbook.Worksheets(0).Cells("C3").Formula
= "=
$A$1"
C# |
workbook.Worksheets[0].Cells["C3"].Formula = "= $A$1"; |
公式中的混合单元格引用既可以从对单元格列的绝对引用和对单元格行的相对引用(例如,$B 2)组合而成,也可以从对单元格列的相对引用和对单元格行的绝对引用(例如,A$1)组合而成。如果复制或移动公式,则混合引用的绝对元素(以“$”符号开头的列字母或行号)将保持不变,并且将自动调整引用的相对元素。例如,如果将带有 $B 2 混合引用的公式从单元格 E5 复制到 F6,则引用将更改为 $B 3。
workbook.Worksheets(0).Cells("D4").Formula
= "=
A$1"
workbook.Worksheets(0).Cells("E5").Formula
= "=
$B2"
Vb.Net
C# |
workbook.Worksheets[0].Cells["D4"].Formula = "= A$1" ; workbook.Worksheets[0].Cells["E5"].Formula = "= $B2"; |
3D 引用允许您处理工作簿中多个工作表上相同单元格中包含的数据。
若要创建 3D 引用,请在单元格(或单元格区域)引用之前指定工作表名称的范围,并用感叹号
(!)
分隔它们。
workbook.Worksheets(0).Cells("G10").Formula
= "=
Sheet1!C3"
workbook.Worksheets(0).Cells("G11").Formula
= "=
SUM(Sheet1:Sheet3!C3:C5)"
Vb.Net
C# |
workbook.Worksheets[0].Cells["G10"].Formula = "= Sheet1!C3"; workbook.Worksheets[0].Cells["G11"].Formula = "= SUM(Sheet1:Sheet3!C3:C5)"; |
此示例演示如何使用 R1C1 引用样式创建公式。为此,请打开 DocumentSettings.R1C1ReferenceStyle 选项,并将包含 R1C1 单元格引用的公式字符串分配给 CellRange.Formula 属性。若要获取 R1C1 引用样式中的单元格引用,可以使用 CellRange.GetReferenceR1C1 方法。
Vb.Net
'打开工作簿中的R1C1引用样式。
workbook.DocumentSettings.R1C1ReferenceStyle = True
'在单元格D2中指定具有相对R1C1引用的公式,将单元格A2到A11中包含的值相加。
worksheet.Cells("D2").Formula = "=SUM(RC[-3]:R[9]C[-3])"
'指定具有绝对R1C1引用的公式,将单元格A2到A11中包含的值相加。
worksheet.Cells("D3").Formula = "=SUM(R2C1:R11C1)"
C# |
// 打开工作簿中的R1C1引用样式。 workbook.DocumentSettings.R1C1ReferenceStyle = true; // 在单元格D2中指定具有相对R1C1引用的公式,将单元格A2到A11中包含的值相加。 worksheet.Cells["D2"].Formula = "=SUM(RC[-3]:R[9]C[-3])"; // 指定具有绝对R1C1引用的公式,将单元格A2到A11中包含的值相加。 worksheet.Cells["D3"].Formula = "=SUM(R2C1:R11C1)"; |