0

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

我可以自己编写方法来做到这一点(例如decrementColumn(), decrementRow(), addColumns( String currentCellName, int howManyToAdd)),但我不想重新发明轮子。是否存在用于此类经常需要的转换的函数库,还是我必须自己动手?

4

1 回答 1

3

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

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

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

这将返回范围,偏移 -1 列。

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

您也可以查看R1C1Excel 中的地址样式,尽管我从来不喜欢那样。此链接适用于 Excel 2007,但应该最适合任何版本的 Excel。

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

于 2013-06-12T02:11:50.390 回答