我是一个中级的C#程序员,但我只是从办公自动化开始,特别是现在。我不得不说,Office API是缺乏的,或者至少它迫使您以不同的方式思考问题。令我抓狂的一件事是手机号码,比如A1和B5等等。我不得不经常操纵它们,但没有简单的方法可以做到这一点。例如,如果我在列C7上,想要将某些内容复制或移动到B7,我不能只使用--C7。相反,我必须计算出C的数值,递减它,把它变成一个字母,然后再把它和行号连接起来。
我可以自己编写方法(例如decrementColumn()、decrementRow()、addColumns( String currentCellName, int howManyToAdd) ),但我不想重复发明轮子。对于这种经常需要的转换,是否存在一个函数库,或者我必须使用自己的函数库?
发布于 2013-06-12 10:11:50
要方便地复制/移动值,可以使用.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
https://stackoverflow.com/questions/17056612
复制相似问题