一个更复杂的excel平均循环

时间:2011-11-01 22:41:50

标签: vb.net visual-studio visual-studio-2010

好吧,我试着尽可能地解释这个......

我的程序创建了一个动态的信息表,我试图通过循环来简化一些信息。为了方便起见,我只想说该表从A1开始并转到(columnindex:rowindex * 6)(该部分已经完成)。

我想要它做的是取每列的平均值并将它们放在同一个excel表上的其他位置。

所以平均值(A1:A(rowindex * 6)),平均值(B1:B(rowindex * 6))等一直到平均值((columnindex)1:columnindex(rowindex * 6)< / p>

现在是棘手的部分......

从A开始((rowindex * 6)+5)....因此,从A列开始,上面的表格下面有5行....

去吧......

Average(A), Average(B)
Average(C), Average(D)
Average(E), Average(F)

依此类推,直到列出所有列......

我正在努力将columnindex转换为适当的字母,因为总有34-40列

我知道我想要做类似的事情:

i = 5

for x = 1 to x = columnindex 

    dim Num2Let1 as string = a=1, b=2, c=3, so on..
    dim Num2Let2 as string = a=1, b=2, c=3, so on..

    xlWorkSheet2.Cells((rowindex*6)+i), 1)  = "Average(" & Num2Let1.ToString & cstr(1) & ":" & Num2Let1.ToString & cstr(rowindex*6))
    xlWorkSheet2.Cells((rowindex*6)+i), 2)  = "Average(" & Num2Let2.ToString & cstr(1) & ":" & Num2Let2.ToString & cstr(rowindex*6))

    i = i + 1
    x = x + 2

    loop
next

如果有人能以我的方式提出一些建议,这是否是最有利于我的问题的方法,或者是否有更简单的解决方案,我们将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

这是一个函数,它将根据索引为您提供列名:

Private Function GetExcelColumnName(columnNumber As Integer) As String
    Dim col As Integer = columnNumber
    Dim columnName As String = ""
    Dim num As Integer

    While col > 0
        num = (col - 1) Mod 26
        columnName = Convert.ToChar(65 + num).ToString() & columnName
        col = CInt((col - num) \ 26)
    End While

    Return columnName
End Function

这应该可以帮助您创建平均函数字符串。