简体   繁体   English

在 Excel 和 C# 中给定起点的情况下,如何获得包含 X 行和 Y 行的范围?

[英]How can I get a Range incorporating X rows and Y rows given a starting point in Excel with VSTO & C#?

I have an Excel Workbook which has some VSTO-based c# code.我有一个 Excel 工作簿,其中包含一些基于 VSTO 的 c# 代码。

Given a known point:给定一个已知点:

var start = START.get_Address(); // "$A$10"

I want to create a range that starts with $A$10 but incorporates an extra X rows and Y columns.我想创建一个以$A$10开头但包含额外的 X 行和 Y 列的范围。

For example例如

var x = 10;
var y = 5;

I want a range that represents $A$10:$F$20 .我想要一个代表$A$10:$F$20的范围。

I can do it by combining addresses:我可以通过组合地址来做到这一点:

var end = ((Excel.Range) START.get_Offset(x, y)).get_Address();

var targetRangeAddress = start + ":" + end;
var newRange = get_Range(targetRangeAddress, System.Type.Missing);

However, there must be an easier way.但是,必须有更简单的方法。 The above is pretty ugly.上面的很丑。

You can use VBA's Resize() or as another commenter pointed out, get_Resize() is the VSTO equivalent.您可以使用 VBA 的Resize()或正如另一位评论者指出的那样, get_Resize()是 VSTO 的等价物。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM