返回列表 上一主題 發帖

[已解決][發問]程式簡化-陣列-VBA ,尋找某元素是否存在陣列中。

本帖最後由 GBKEE 於 2011-3-29 10:26 編輯

回復 4# Baracuda
  1. Sub Ex()
  2.     A = Array("一", "五", "八")
  3.     b = Array("一", "二", "三", "四", "五", "六")
  4.     For Each E In A
  5.         M = Application.Match(E, b, 0)
  6.         MsgBox E & IIf(IsNumeric(M), "存在於 ", " 不存在於 ") & Join(b, ",")
  7.     Next
  8. End Sub
複製代碼

TOP

本帖最後由 GBKEE 於 2011-3-30 14:31 編輯

回復 6# Baracuda
迴圈  FOR EACH E  IN 物件    E的型態是Variant  或  Object
如  物件是 Range 範圍             E的型態可設為 Range
M = Application.Match(E, b, 0)  傳回 數字 或 #NA
M 的型態 是  Variant

TOP

6樓 問 E 設成 String 不會work。
這是宣告 型態的問題

TOP

回復 12# Baracuda
要按下 如圖的代碼 將程式碼貼上 後按提交


TOP

回復 13# greetingsfromtw
  1. '討論區網址:http://forum.twbts.com/index.php
  2. Option Explicit
  3. Sub Ex()
  4.     Dim M As Variant, A(), B()
  5.     A = Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row)  '二維陣列
  6.     B = Range("b2:b" & Cells(Rows.Count, 2).End(xlUp).Row) '二維陣列
  7.     B = Application.WorksheetFunction.Transpose(B)                '轉至為一維陣列
  8.     For Each E In A
  9.         M = Application.Match(E, B, 0)
  10.         MsgBox E & IIf(IsNumeric(M), "存在於 ", " 不存在於 ") & Join(B, ",")
  11.         'Join 函數 傳回一個字串,該字串是透過連結某個陣列中的多個子字串而建立的。
  12.         '******** 某個陣列 ,必須是一維陣列********************
  13.     Next
  14. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 為人處世要小心細心,但不要「小心眼」。
返回列表 上一主題