我真的是个新手。我需要在工作表中指定一系列连续的单元格,我只知道其中的第一个单元格。通常,对于固定数量的单元格,我使用(作为连续13个单元格的示例):
Excel::Range^ er7 = Wsheet1->Range["H8:H20", Type::Missing];
er7->Formula = "=SUM(E8:G8)/3";而且它是有效的。
现在,我希望范围的最后一个单元格( H20)是工作表中列出的项数的函数。例如,类似于H8+k (当然,k是一个已知整数)。
你能帮帮忙吗?谢谢
附注:我用c++/cli编写代码,但借用了我在c#中找到的示例。
发布于 2015-09-10 01:12:51
=COUNTA(H8:H20)将给出区域中非空单元格的数量。这就是你所说的列出的项目数量吗?
编辑:
如果您说您有一个已知的引用范围(比如单元格"H8"),以及构成整个范围的已知行数(比如r= 20)和/或列数(比如c= 10),那么可以使用Resize函数。我不熟悉C++,但是在C#中使用Interop.Excel的代码应该是:
er7 = xlApp.get_Range(ws.Range["H8", System.Type.Missing].Resize[r, c]);发布于 2015-09-10 01:51:14
COUNT(B500:B585)+COUNTBLANK(B500:B585)将显示范围内的所有项目,无论它们是否为空。
我不确定C#的语法,但可能是:
rowLen = er7->rows->count;
er7->Cells[rowLen - 1,1]->Formula = "=SUM(E8:G8)/3";发布于 2015-09-11 00:47:16
它一直在我的眼前。这甚至不是Excel Interop的问题。这是语法问题。我说范围内涉及的单元格数量是已知的,就像最初的单元格一样。好吧,由于最后一个单元格在数据的最后一行,所有需要做的就是:
int r = Wsheet1->UsedRange->Rows->Count;
Excel::Range^ er7 = Wsheet1->Range["G8:G"+r.ToString(), Type::Missing];
er7->Formula = "=SUM(E8:F8)/2";瞧啊。感谢您的宝贵时间!!
https://stackoverflow.com/questions/32485149
复制相似问题