- 帖子
- 1018
- 主題
- 15
- 精華
- 0
- 積分
- 1058
- 點名
- 0
- 作業系統
- win7 32bit
- 軟體版本
- Office 2016 64-bit
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 桃園
- 註冊時間
- 2012-5-9
- 最後登錄
- 2022-9-28
|
2#
發表於 2016-8-3 17:36
| 只看該作者
回復 1# PKKO
就是跑迴圈啊...有啥理由不能跑迴圈
如果會執行很多次這種運算,就包成Function- '二維矩陣做AND
- Function MatrixAND2D(matrix1, matrix2)
- If LBound(matrix1) <> LBound(matrix2) Or _
- UBound(matrix1) <> UBound(matrix2) Or _
- LBound(matrix1, 2) <> LBound(matrix2, 2) Or _
- UBound(matrix1, 2) <> UBound(matrix2, 2) Then
- Err.Raise vbObjectError + 9999, "MatrixAND()", "兩矩陣上下標不同"
- End If
-
- Dim arResult, r, c
- ReDim arResult(LBound(matrix1) To UBound(matrix1), LBound(matrix1, 2) To UBound(matrix1, 2)) As Boolean
- For r = LBound(matrix1) To UBound(matrix1)
- For c = LBound(matrix1, 2) To UBound(matrix1, 2)
- arResult(r, c) = matrix1(r, c) And matrix2(r, c)
- Next
- Next
- MatrixAND2D = arResult
- End Function
- Sub test()
- Dim a(1 To 2, 1 To 2) As Boolean, b(1 To 2, 1 To 2) As Boolean
- Dim c
-
- a(1, 1) = True: a(1, 2) = True: b(1, 1) = True
- c = MatrixAND2D(a, b)
- [a1].Resize(2, 2) = c
- End Sub
複製代碼 |
|