Board logo

標題: [發問] 如何用VBA找出對應欄的值? [打印本頁]

作者: smart3135    時間: 2017-8-8 18:44     標題: 如何用VBA找出對應欄的值?

本帖最後由 smart3135 於 2017-8-8 18:45 編輯

想請教一下,如表格,我想要在A2到E2這個範圍中找出最大值對應首列的文字

A3到E3找出最大值對應首列的文字,以此類推

例如:A2到E2最大值為5,那對應的就是機器5

A3到E3最大值為55,那對應的就是機器1

A4到E4最大值為555,那對應的就是機器3

然後把對應的結果在I欄顯示,請教一下VBA應該怎麼寫呢?
[attach]27597[/attach]
作者: 准提部林    時間: 2017-8-9 10:23

用公式可以嗎?

有問題, 最好上傳檔案~~~
作者: Kubi    時間: 2017-8-9 10:51

回復 1# smart3135
請參考
[attach]27599[/attach]
作者: ikboy    時間: 2017-8-9 12:47

回復 1# smart3135

=INDIRECT("R1" & "C" & MATCH(MAX(A2:E2),A2:E2,0),0)
作者: ikboy    時間: 2017-8-9 13:17

Macro
  1. Sub test()
  2.     Dim arr, n%, m%, a()
  3.     er = [A65536].End(3).Row
  4.     arr = [a1].Resize(er, 5).Value
  5.     ReDim a(1 To er, 1 To 1)
  6.     For i = 2 To er
  7.         n = arr(i, 1): m = 1
  8.         For j = 2 To 5
  9.             If arr(i, j) > n Then n = arr(i, j): m = j
  10.         Next
  11.         a(i, 1) = arr(1, m)
  12.     Next
  13.     [i1].Resize(er) = a
  14. End Sub
複製代碼
  1. Sub newdata()
  2.     Dim ar
  3.     er = [A65536].End(3).Row
  4.     ReDim ar(1 To er, 1 To 5)
  5.     [a2].Resize(er, 9).ClearContents
  6.     For i = 1 To er
  7.         For j = 1 To 5
  8.             ar(i, j) = Int(Rnd * 1000) + 1
  9.         Next
  10.     Next
  11.     [a2].Resize(er, 5) = ar
  12. End Sub
複製代碼

作者: smart3135    時間: 2017-8-9 19:15

回復  smart3135
請參考
Kubi 發表於 2017-8-9 10:51



感謝大大的幫忙,完全符合我想要的結果,不好意思,忘了放檔案上來了

想再請教另一個問題,A欄有50和100兩種數字,B欄則是英文字

若我想當A欄和B欄同時重覆的值都一起清除內容,又該怎麼寫程式碼呢?

例如A1+B1和A3+B3兩個完全相同,就清除其中一個的值(清除A1+B1或A3+B3)

A8+B8和A9+B9兩個完全相同,就清除其中一個的值(清除A8+B8或A9+B9),以此類推

我有試著用For next同時執行雙迴圈去寫,但總是寫不出我要的結果,懇請再次幫忙

    [attach]27609[/attach]
作者: Kubi    時間: 2017-8-10 15:13

回復 6# smart3135
請參考
[attach]27610[/attach]




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)