註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (0)
公共消息 (0)
論壇任務 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
麻辣家族討論版版
»
Excel程式區
» 三維陣列找最大值
返回列表
下一主題
上一主題
發帖
[發問]
三維陣列找最大值
acdx
發短消息
加為好友
acdx
當前離線
UID
9383
帖子
132
主題
56
精華
0
積分
190
金錢
190
點名
0
作業系統
Win10
軟體版本
Office 365
閱讀權限
20
性別
男
在線時間
217 小時
註冊時間
2012-5-17
最後登錄
2025-4-8
中學生
帖子
132
主題
56
精華
0
積分
190
點名
0
作業系統
Win10
軟體版本
Office 365
閱讀權限
20
性別
男
註冊時間
2012-5-17
最後登錄
2025-4-8
1
#
跳轉到
»
倒序看帖
打印
字體大小:
t
T
發表於 2018-5-15 17:59
|
只看該作者
[發問]
三維陣列找最大值
一個三維陣列PR(1 To 3, 1 To 30)
[ 5, 6, 2, 15, 11, ....]
[10, 21, 17, 5, 25, ...]
[11, 14, 8, 21, 24, ...]
該怎麼找PR(1, ), PR(2, ), PR(3, )的最大值?
樓主熱帖
如何設定
如何將VBA程式轉成增益集?
如何讓ComboBox可以用滑鼠滾動?
TextBox如何設定只能是整數?
如何將TextBox轉成txt檔
array怎麼計算平均、標準差?
.READLine的用法
.End(xlToRight).Column的用法
計算資料夾內xls檔案數
為何會出現"必須是變數或程序,而非模組"這樣
收藏
分享
准提部林
發短消息
加為好友
准提部林
當前離線
UID
13768
帖子
2848
主題
10
精華
0
積分
2903
金錢
2903
點名
0
作業系統
〔略〕
軟體版本
〔略〕
閱讀權限
100
性別
男
來自
〔略〕
在線時間
2122 小時
註冊時間
2013-5-13
最後登錄
2026-7-25
版主
帖子
2848
主題
10
精華
0
積分
2903
點名
0
作業系統
〔略〕
軟體版本
〔略〕
閱讀權限
100
性別
男
來自
〔略〕
註冊時間
2013-5-13
最後登錄
2026-7-25
2
#
發表於 2018-5-19 20:58
|
只看該作者
Sub UTest()
Dim PR(1 To 3, 1 To 30), MX(1 To 3)
For i = 1 To 3
For j = 1 To 30
PR(i, j) = Int(Rnd * 1000)
If PR(i, j) > MX(i) Then MX(i) = PR(i, j)
Next
Next
MsgBox Join(MX, "_")
End Sub
TOP
Kubi
發短消息
加為好友
Kubi
當前離線
UID
1510
帖子
163
主題
1
精華
0
積分
170
金錢
170
點名
0
作業系統
Window 7
軟體版本
Office 2007
閱讀權限
20
性別
男
在線時間
126 小時
註冊時間
2010-9-5
最後登錄
2022-7-20
中學生
帖子
163
主題
1
精華
0
積分
170
點名
0
作業系統
Window 7
軟體版本
Office 2007
閱讀權限
20
性別
男
註冊時間
2010-9-5
最後登錄
2022-7-20
3
#
發表於 2018-5-20 20:32
|
只看該作者
回復
1#
acdx
底下是二維陣列:
PR(1 To 3, 1 To 30)
雖不曾寫過三維陣列,但三維應該像如下表示式:
PR(1 To 3, 1 To 30, 1 To 10)
TOP
quickfixer
發短消息
加為好友
quickfixer
當前離線
UID
28599
帖子
154
主題
1
精華
0
積分
200
金錢
200
點名
3
作業系統
windwos 7
軟體版本
64bit
閱讀權限
20
在線時間
694 小時
註冊時間
2017-5-29
最後登錄
2026-7-8
中學生
帖子
154
主題
1
精華
0
積分
200
點名
3
作業系統
windwos 7
軟體版本
64bit
閱讀權限
20
註冊時間
2017-5-29
最後登錄
2026-7-8
4
#
發表於 2018-5-20 21:23
|
只看該作者
本帖最後由 quickfixer 於 2018-5-20 21:32 編輯
下載
(71.21 KB)
2018-5-20 21:22
'自己把第7行的資料來源改成pr()2維陣列
Sub test()
Dim findmax As Object, mx(1 To 3)
Set findmax = CreateObject("System.Collections.ArrayList")
For i = 1 To 3
For j = 1 To 30
findmax.Add Cells(i, j).Value
Next j
findmax.Sort: findmax.Reverse
mx(i) = findmax.Item(0)
findmax.Clear
Next i
MsgBox Join(mx, "_")
Set findmax = Nothing
End Sub
複製代碼
TOP
acdx
發短消息
加為好友
acdx
當前離線
UID
9383
帖子
132
主題
56
精華
0
積分
190
金錢
190
點名
0
作業系統
Win10
軟體版本
Office 365
閱讀權限
20
性別
男
在線時間
217 小時
註冊時間
2012-5-17
最後登錄
2025-4-8
中學生
帖子
132
主題
56
精華
0
積分
190
點名
0
作業系統
Win10
軟體版本
Office 365
閱讀權限
20
性別
男
註冊時間
2012-5-17
最後登錄
2025-4-8
5
#
發表於 2018-5-24 14:32
|
只看該作者
回復
4#
quickfixer
這寫法是我從沒嘗試過的 讓我開眼界了!
請問findmax.Sort: findmax.Reverse 是什麼意思?
感謝
TOP
nolookyou
發短消息
加為好友
nolookyou
當前離線
UID
3325
帖子
65
主題
18
精華
0
積分
71
金錢
71
點名
0
作業系統
WINXP、7、10、SERVER2012
軟體版本
Office 2010-2016
閱讀權限
20
性別
男
在線時間
41 小時
註冊時間
2011-1-27
最後登錄
2025-5-4
中學生
帖子
65
主題
18
精華
0
積分
71
點名
0
作業系統
WINXP、7、10、SERVER2012
軟體版本
Office 2010-2016
閱讀權限
20
性別
男
註冊時間
2011-1-27
最後登錄
2025-5-4
6
#
發表於 2018-5-24 15:17
|
只看該作者
回復
5#
acdx
這邊有詳細的ArrayList解說與範例(英文)
http://www.snb-vba.eu/VBA_Arraylist_en.html#L_11.1
TOP
quickfixer
發短消息
加為好友
quickfixer
當前離線
UID
28599
帖子
154
主題
1
精華
0
積分
200
金錢
200
點名
3
作業系統
windwos 7
軟體版本
64bit
閱讀權限
20
在線時間
694 小時
註冊時間
2017-5-29
最後登錄
2026-7-8
中學生
帖子
154
主題
1
精華
0
積分
200
點名
3
作業系統
windwos 7
軟體版本
64bit
閱讀權限
20
註冊時間
2017-5-29
最後登錄
2026-7-8
7
#
發表於 2018-5-24 16:31
|
只看該作者
本帖最後由 quickfixer 於 2018-5-24 16:42 編輯
回復
5#
acdx
從01 S大,那邊學來的,他常常有一些很特别的寫法出現
sort是從小到大排序
Reverse是把排序好的,改成從大到小排序
這樣item(0)就固定是最大值
資料少還沒什麼感覺,資料多時這個方式超快
其實資料不多,可以用worksheetfunction.max代替,程式比較短,速度一樣快
TOP
靜思自在 :
慈悲沒有敵人,智慧不起煩惱。
返回列表
下一主題
上一主題
Excelㄧ般區
EXCEL專屬討論區
Excelㄧ般區
Excel程式區
進階應用專區
OFFICE 系列
Word
PowerPoint
Access
Office不分區
程式語言
VB 與 VB.Net
C 與 C#
Java 與 J#
程式設計不分區
資料庫
ORACLE
My SQL
MS SQL
網頁設計
ASP 與 ASP.NET
PHP
PHP+MySQL 入門實作
JavaScript
FLASH / ActionScript
HTM/ HTML/ CSS
網頁設計不分區
電腦與作業系統
電腦各種硬體討論
一般電腦軟體討論
論壇事務
管理公告
投訴反映
新手測試
愛 • 生活
公益佈告欄
生活與感動
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]
申請友情鏈接
Facebook粉絲