返回列表 上一主題 發帖

[發問] VBA 中計算數值問題

詢問矩陣設計問題

我寫了一個 4*4 的矩陣, 矩陣值會有分數, 但執行後 < 0 的部份都顯示 0
如果才能讓它顯示分數?

語法:
Dim myarray1(2 To 5, 2 To 5) As Integer

myarray1(2, 2) = 1
myarray1(2, 3) = 1
myarray1(2, 4) = 3
myarray1(2, 5) = 5

myarray1(3, 2) = 1
myarray1(3, 3) = 1
myarray1(3, 4) = 2
myarray1(3, 5) = 4

myarray1(4, 2) = 1 / 3
myarray1(4, 3) = 1 / 3
myarray1(4, 4) = 1
myarray1(4, 5) = 5

myarray1(5, 2) = 1 / 5
myarray1(5, 3) = 1 / 4
myarray1(5, 4) = 1 / 5
myarray1(5, 5) = 1

For i = 2 To 5
  For j = 2 To 5
    Cells(i, j).Value = myarray1(i, j)
    Next j
Next i

End Sub

TOP

問題已解決   非常謝謝你

TOP

[發問] VBA 中計算數值問題

我設計了一個 3*3 的矩陣, 想做 row 的乘法,
例如, myarray1(2,2) 的 1 * myarray1(3, 2) = 1 *myarray1(4, 2) = 1 / 3
即 1*1*3

這個語法要怎麼寫?

Dim myarray1(2 To 4, 2 To 4) As Single

myarray1(2, 2) = 1
myarray1(2, 3) = 1
myarray1(2, 4) = 3

myarray1(3, 2) = 1
myarray1(3, 3) = 1
myarray1(3, 4) = 2

myarray1(4, 2) = 1 / 3
myarray1(4, 3) = 1 / 2
myarray1(4, 4) = 1


For i = 2 To 4
  For j = 2 To 4
    Cells(i, j).Value = myarray1(i, j)
    Next j
Next i

End Sub

先謝謝超級版主的建議, 我是想在矩陣中再加一個欄位, 可以自動做 row的計算, 像下面那個矩陣一樣
1.............1........3.........(1*1*3)
1.............1....... 2........(1*1*3)
1/3.....1/2.......1........(1/3*1/2*1)

TOP

想再詢問超級版主,若我再加入一個欄位,從 3*3 變 4*4, 應該怎麼修改語法?(看了好久, 不太了解 ReDim 這句語法)

1.............1........3.......2........(1*1*3*2)
1.............1....... 2......1.........(1*1*3*1)
1/3.....1/2.......1.......3........(1/3*1/2*1*3)

TOP

謝謝你 --- 我會再練習看看, 有問題再麻煩你囉~~

TOP

我想請問超級版主, 如果用VBA語法, 如何判斷矩陣中的任一數值被改變, 並且能夠讓它重新計算1.............1........3.......2........(1*1*3*2)
1.............1....... 2......1.........(1*1*3*1)
1/3.....1/2.......1.......3........(1/3*1/2*1*3)
再麻煩您~~

TOP

超級版主, 真的是太感謝你了!!!

TOP

超級版主您好,

因為我的權限有限, 無法將程式檔案附加上來, 也無法傳短消息給您, 我仍然有矩陣計算問題想請教您, 不曉得應該怎麼處理, 方便給我您的 email? 或是有其它方式? 麻煩您

TOP

超級版主您好,
我的問題是: 變更數值時, 沒有辦法進行重算, 不曉得是哪裡出了問題
Matrix.rar (5.57 KB)

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題