我是一名中级C#程序员,但我刚刚开始使用Office自动化,特别是Excel。我必须说,Office API缺乏,或者至少它迫使你以不同的方式思考问题。让我疯狂的一件事是细胞数,例如A1
和B5
等等。我经常被迫操纵它们,但是没有简单的方法可以做到这一点。例如,如果我在C7列上并想要复制或移动某些东西到B7,我不能只使用--C7
。相反,我必须弄清楚C
的数值,递减它,将其转回一个字母,然后再将它与行号连接。
我可以自己编写方法(例如decrementColumn()
,decrementRow()
,addColumns( String currentCellName, int howManyToAdd)
),但我不想重新发明轮子。是否存在用于此类经常需要的转换的函数库,或者我将不得不自己滚动?
答案 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