Re: [算表] excel在陣列中找尋數值後傳回其所在位址

看板Office作者 (養花種魚數月亮賞星星)時間16年前 (2010/06/02 07:01), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《weeeeeeeeell (等雨停)》之銘言: : 軟體:excel : 版本:xp 2003 : A B C D E F G H I J K VZ : ----------------------------------------------------- : 1 .. ... .. .. .. 12345 ... ... .... .. .. ... .. : 2 .. ... .. .. .. .. ... ... .... .. .. . : 3 .. ... .. .. .. .. ... ... .... .. .. . : 4 .. ... .. .. .. 12345 ... ... .... 12345 . : 5 .. ... .. .. .. .. ... ... .... .. .. . : 6 .. : .. : 4096 .. ... .. .. .. ... .. .. ... ... .. .... ..... : sheet裡已存在一眼看不完的 256x4096 大小的array : 已知array中有20個格子內容皆為12345 : 我想要把內容為12345的儲存格位址傳回來如下 : A4097=f1 : A4098=f4 : A4099=j4 : . : . : . : 要怎樣才能辦到呢? Sub test() k = 257 For i = 1 To 256 For j = 1 To 4096 If Cells(i, j) = 12345 Then Cells(k, 1) = i Cells(k, 2) = j k = k + 1 Else k = k End If Next Next End Sub 最下面會列出12345的座標 蠻白爛的作法 -- 養花種魚數月亮賞星星 http://cydye1069.blogspot.com -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.129.144

02/25 21:00, , 1F
是的,這樣做是最沒有效率的,為什麼,因為用回傳256*4096
02/25 21:00, 1F

02/25 21:01, , 2F
這就跑了1048576次,只為了找內文寫的20筆
02/25 21:01, 2F

02/25 21:01, , 3F
用range.find,那就是跑20筆
02/25 21:01, 3F
文章代碼(AID): #1C1P5DGY (Office)
文章代碼(AID): #1C1P5DGY (Office)