在Excel中增加单元格数的简便方法

时间:2013-06-12 02:04:34

标签: c# excel ms-office

我是一名中级C#程序员,但我刚刚开始使用Office自动化,特别是Excel。我必须说,Office API缺乏,或者至少它迫使你以不同的方式思考问题。让我疯狂的一件事是细胞数,例如A1B5等等。我经常被迫操纵它们,但是没有简单的方法可以做到这一点。例如,如果我在C7列上并想要复制或移动某些东西到B7,我不能只使用--C7。相反,我必须弄清楚C的数值,递减它,将其转回一个字母,然后再将它与行号连接。

我可以自己编写方法(例如decrementColumn()decrementRow()addColumns( String currentCellName, int howManyToAdd)),但我不想重新发明轮子。是否存在用于此类经常需要的转换的函数库,或者我将不得不自己滚动?

1 个答案:

答案 0 :(得分:2)

要轻松复制/移动值,您可以使用.Offset方法,该方法返回范围。

例如,如果您使用的范围/单元格为C7,则rng表示此Range对象:

rng.Offset(0,-1).Value = rng.Value

返回范围,偏移-1列。

rng.Offset(10,15)将返回10行以下的单元格/范围,右边15列,等等。

您也可以在Excel中查看R1C1地址样式,尽管我从未喜欢过。 Excel 2007的此链接应该主要适用于任何版本的Excel。

http://msdn.microsoft.com/en-us/library/office/ee264226(v=office.12).aspx