所以这就是我正在经历的事情 . 我正在使用带有c#的Excel dll,以便进入一个大而讨厌的excel表,以便其他人不必这样做 .
我们在一个单元格中有一个相当大的公式,我们不希望因此而将它复制到每一行 . 此公式在放置它的行上使用多个值 . 如果它在第1行,它会使用该行中的大量单元格 .
当通常在excel中复制此公式时,将修改单元格的新范围以反映新的起始位置 .
问题是,当我复制这样的公式时,它仍然给我所有与第一行有关的值,而不是我粘贴它的行.....这是我的代码:
sheet.Cells[77][row].Formula = sheet.Cells[77][1].Formula;
有人可以让我知道如何使公式实际应用于新行而不是第1行?
3 回答
这可能会起作用,因为它在VBA中起作用......在大多数情况下 .
这将起作用,因为FormulaR1C1(不是非常有用的链接)使用R1C1表示法,它描述了与当前单元格相关的引用单元格位置,而不是说要使用哪些单元格 . 这意味着实际参考值取决于具有公式的单元格 . 当你只使用
Formula
时,你正在复制Formula
的字符串,其中包括硬编码的单元格引用 .你可以用
Application.ConvertFormula
所以,假设我的Cell = Cells 77有一个公式,表示
=Sum(B77,C77)
(来自同一行的单元格) .如果想将它复制到它下面的单元格,你会做类似的事情:
适用的完整控制台应用程序(您需要修改单元格) .
您可以根据自己的喜好修改
ConvertFormula
方法的第三个和第四个参数 . 在此处阅读有关此方法的更多信息:ConvertFormula .如果要跨多行拉伸公式,可以尝试使用range.AutoFill()
嗨大家好发帖,因为这段代码用于复制Excel中单元格后面的公式: