查找所有对单元格的引用

我有以下数据

----------------------------------- . ABC 1 Data Total Left 2 D1 10 5 3 D2 20 13 4 D3 30 21 5 6 7 =A2 1 8 =A3 2 9 =A4 3 10 11 =A2 4 12 =A3 5 13 =A4 6 ----------------------------------- 

我正在寻找两件事情。

有没有办法find一个单元格的所有引用?

有没有办法增加单元格的字母? 即当我find参考A7(对于A2),我想要得到B7的值。

对于第一个问题:

我不认为有办法通过编写Excel公式find所有对单元格的引用。 有许多查找function,但它们不在公式中search,只search值。 因此,您可以search“D1”(上面A2中的值),并确定A7保存“D1”。 例如,= Match(“D1”,A7:A13)应该给你一个行索引值。 这样的searchscheme可能工作,如果值是足够的唯一,如主键值。

我甚至会觉得很困难,也许不可能在最常见的情况下find所有使用VBA的引用。 你必须遍历单元格(或者观察变化),并从文本中parsing它们的公式来识别引用(yuk!)。 如果你可以限制那些带有引用的公式(例如,限制只是复制公式= A1或类似公式),因为在通用公式中可能相当复杂,并且它们并不总是通过名称来标识确切的单元格被引用。 以下面的公式为例。 这是真的(从某种意义上)引用单元格A8,虽然它提到了A7。


对于第二个问题,

 =Offset(A7,0,1) 

将在A7旁边的单元格中获得您的价值。

 =Offset(A7, Match("D1", A7:A11) - 1, 1) 

产生与“D1”匹配的单元格旁边的单元格中的值。

有没有办法find一个单元格的所有引用?

select要检查的图纸区域,然后在“ Formulas菜单下select“ Trace Precedents 。 这将显示在所选区域中的公式中使用哪些单元格

在这里输入图像说明

如果需要,可以使用VBA自动执行。


有没有办法增加单元格的字母?

如果你的意思是你想改变单元格中的公式,那就需要VBA。

如果你的意思是别的,需要更多的解释。

查找对单元格的引用

  1. select您想要查找参考的单元格
  2. 转到Formulas – > Trace Dependents

图像澄清指示2

之前

后

每次按Trace Dependents ,Excel会向您显示更深的一层(受抚养人的家属)。

之后,全面深入

请注意,您可以按照其他方式使用“ Trace Precedents来查找所选单元格引用的单元格。 您可以使用Remove Arrows清除所有箭头。


增加单元格字母

给定参考A7 ,您可以使用=OFFSEET(...)=INDIRECT(...)ADDRESS(...)公式find其他单元格的值。

为了引用参考文献A7单元格B7

=OFFSET(A7, 0, 1)

要么

INDIRECT(ADDRESS(ROW(A2), COLUMN(A2)+1))

有一种方法,我需要用c#做这个,因为我正在创build一个插件。 反正这里是我的代码:

  Application excelApp; try { excelApp = new Application(); if (excelApp == null) // Go to catch block if excelApp = null throw new Exception(); } catch { throw new Models.Exceptions.MsOfficeNotFoundException("Excel"); } excelApp.Visible = visible; // add workbook var workBook = excelApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); // add worksheet Worksheet workSheet = (Worksheet)workBook.Worksheets[1]; 

//然后让用户填写公式等。

例如,获取所有单元格引用单元格A1的范围,然后执行:

  (workSheet .Cells[i + 1, 1] as Range).Dependents; // 

**换句话说,寻找依赖者function**