返回列表 上一主題 發帖

[發問] 如何用VBA找出對應欄的值?

[發問] 如何用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應該怎麼寫呢?
333333333333.jpg
2017-8-8 18:43
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

用公式可以嗎?

有問題, 最好上傳檔案~~~
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

回復 1# smart3135
請參考
用VBA找出對應欄.rar (43.03 KB)
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

回復 1# smart3135

=INDIRECT("R1" & "C" & MATCH(MAX(A2:E2),A2:E2,0),0)
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

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
複製代碼

用VBA找出對應欄.rar (53.69 KB)

請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

回復  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同時執行雙迴圈去寫,但總是寫不出我要的結果,懇請再次幫忙

    test.zip (6.17 KB)
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

回復 6# smart3135
請參考
刪除重複.rar (19.63 KB)
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

        靜思自在 : 一個缺口的杯子,如果換一個角度看它,它仍然是圓的。
返回列表 上一主題