首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >excel互操作变量范围

excel互操作变量范围
EN

Stack Overflow用户
提问于 2015-09-10 00:44:50
回答 3查看 356关注 0票数 0

我真的是个新手。我需要在工作表中指定一系列连续的单元格,我只知道其中的第一个单元格。通常,对于固定数量的单元格,我使用(作为连续13个单元格的示例):

代码语言:javascript
复制
Excel::Range^ er7 = Wsheet1->Range["H8:H20", Type::Missing];

er7->Formula = "=SUM(E8:G8)/3";

而且它是有效的。

现在,我希望范围的最后一个单元格( H20)是工作表中列出的项数的函数。例如,类似于H8+k (当然,k是一个已知整数)。

你能帮帮忙吗?谢谢

附注:我用c++/cli编写代码,但借用了我在c#中找到的示例。

EN

回答 3

Stack Overflow用户

发布于 2015-09-10 01:12:51

=COUNTA(H8:H20)将给出区域中非空单元格的数量。这就是你所说的列出的项目数量吗?

编辑:

如果您说您有一个已知的引用范围(比如单元格"H8"),以及构成整个范围的已知行数(比如r= 20)和/或列数(比如c= 10),那么可以使用Resize函数。我不熟悉C++,但是在C#中使用Interop.Excel的代码应该是:

代码语言:javascript
复制
er7 = xlApp.get_Range(ws.Range["H8", System.Type.Missing].Resize[r, c]);
票数 0
EN

Stack Overflow用户

发布于 2015-09-10 01:51:14

COUNT(B500:B585)+COUNTBLANK(B500:B585)将显示范围内的所有项目,无论它们是否为空。

我不确定C#的语法,但可能是:

代码语言:javascript
复制
 rowLen = er7->rows->count;
 er7->Cells[rowLen - 1,1]->Formula = "=SUM(E8:G8)/3";
票数 0
EN

Stack Overflow用户

发布于 2015-09-11 00:47:16

它一直在我的眼前。这甚至不是Excel Interop的问题。这是语法问题。我说范围内涉及的单元格数量是已知的,就像最初的单元格一样。好吧,由于最后一个单元格在数据的最后一行,所有需要做的就是:

代码语言:javascript
复制
int r = Wsheet1->UsedRange->Rows->Count;
Excel::Range^ er7 = Wsheet1->Range["G8:G"+r.ToString(), Type::Missing];
er7->Formula = "=SUM(E8:F8)/2";

瞧啊。感谢您的宝贵时间!!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32485149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档