2016-04-22 282 views
0

我想讀取和存儲來自4 * 4矩陣(2維數組)的值,並將其用於我的進一步程序中。我正在談論Excel的VBA。數據在Excel工作表中,我想通過VBA讀取它。我對此很陌生,但學得很快。請幫我做。如何在excel vba中讀取矩陣?

這是我在片數據

b 6分配8 7

的C 3 6 9

這就是我想要做

一個0 2 7 13

b 0 6 14 21

c 0 3 9 18

我需要從表中讀取3 * 3矩陣並將其轉換爲累積矩陣,如圖所示。 (添加以前的號碼並繼續)。

基本上我模擬一個馬爾可夫鏈,需要計算一個人經過每個階段的次數。 子實施例7()

Dim A As Double, B As Double, C As Double, PC(4, 4) As Double, row As Double, maxrwo As Double, col As Double, maxcol As Double 

Range("o5").Activate 

For i = 1 To 4 
For j = 1 To 4 
PC(i, j) = ActiveCell.Value 

ActiveCell.Offset(0, 1).Select 

Next j 

ActiveCell.Offset(1, -4).Select 
Next i 

Range("T4") = PC(2, 4) 

End Sub 
+0

歡迎來到Stackoverflow!您能否詳細說明您的問題,比如代碼或其他事情,以便人們能夠儘早解決問題並幫助您?謝謝! – manetsus

+1

從一個範圍到一個VBA變量可以很容易地得到一個二維數組。例如,如果'A'被聲明爲類型'Variant',並且數據在範圍A1:D4中,那麼'A = Range(「A1:D4」)。Value'將把數據傳送到'A'。 –

回答

1

如果你要處理的範圍內,你不需要他們先存儲在數組中的值。您可以通過使用類似於以下代碼循環遍歷範圍中的每個單元格:

Sub LoopThroughRange() 

Dim currentCell As Range 
Dim desiredRange As Range 
Dim outputCell As Range 
Dim total As Double 

Set outputCell = Range("A6") 
Set desiredRange = Range("Sheet1!A1:D4") 

'This will add the values of each cell in the range and output the total to cell A6 
For Each currentCell In desiredRange 

    total = total + currentCell.Value 

Next currentCell 

outputCell.Value = total 

End Sub