2011-11-01 61 views
0

好吧,虐待嘗試是最好的,我可以先解釋一下這個...更復雜擅長平均環

我的程序創建一個動態的信息表,我試着用一個循環來簡化一些信息。爲了簡單起見,我只會說表格從A1開始,然後轉到(columnindex:rowindex * 6)(該部分已經完成)。

我想要做的是取每列的平均值,並將它們放在同一張Excel表格的其他位置。 ((columnindex)1:columnindex(rowindex * 6))的平均值(A1:A(rowindex * 6)),平均值(B1:B(rowindex * 6))等。

現在棘手的問題....

開始在A((rowIndex位置* 6)5)....因此5行以上在A列開始見下表....

去吧...

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

等等直到所有的列都是li STED ...

當我奮力的轉換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

這裏是給你基於其索引中的列名的函數:

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 

這應該幫助你創建你的平均函數字符串。

+0

感謝您的幫助! :) – Nefariis

+0

高興地幫忙,自己需要幾次......甚至在我的工具箱:) – Jay