返回列表 上一主題 發帖

match 搜尋不同工作表可以指定變數嗎?

回復 20# EGBT
  1. Sub Ex()
  2.     Dim 數值表 As Variant, 陣列表 As Variant, E As Variant
  3.     'Variant 資料型態是所有沒被明確宣告為其他型態,可以為認何的資料型態
  4.     For Each E In Sheets
  5.         If E.Name Like "數值*" Then
  6.             數值表 = 數值表 & "," & E.Name '字串:集合數值表
  7.            MsgBox VarType(數值表) '8 (字串 )
  8.         End If
  9.     Next
  10.     '*******************************************
  11.     'Split : 字串以 "," (任何指定的字串) 分割而成為陣列
  12.     數值表 = Split(Mid(數值表, 2), ",")
  13.     '*******************************************
  14.     MsgBox VarType(數值表) '8192 (陣列) + 8 (字串 )
  15.     For Each E In Array("數值1", "數值2", "數值3")         '工作表陣列(數值表)
  16.         MsgBox VarType(E)   '8 (字串 )
  17.     Next
  18.     'For Each E In Sheets(Array("數值1", "數值2", "數值3"))         '工作表陣列(數值表)
  19.     For Each E In Sheets(數值表)           '工作表陣列(數值表)
  20.         MsgBox VarType(E)   ' 9 物件
  21.     Next
  22. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 21# GBKEE


    感恩大大的細心耐心開示!

TOP

回復 21# GBKEE


    大大..小弟在字串集合表不太懂...字串集合表他是把與"數值"相似的放進去「數值表」裡面嗎?

但「數值表」他不是宣告Variant嗎? 他可以連續放Sheet字串嗎?

不是要像宣告動態陣列例如宣告「數值表()」嗎?

TOP

回復 21# GBKEE


    大大我明白了...他是用「,」分隔開來...我懂了...

TOP

回復 21# GBKEE


    大大想再請教一下,

上面有一行是「數值表 = Split(Mid(數值表, 2), ",")」

這行可以解釋一下嗎...數值表有可能會等於「數值、數值1、數值2....數值123456」假設前面的If ... Like "數值*******"

你這行「數值表 = Split(Mid(數值表, 2), ",")」可以解釋給小弟理解嗎...

還有一個問題就是,當整個字串成為不規律且將字串連結起來中間用逗號隔開「台灣,中國,俄羅斯,美國...」,我要怎麼遇到逗號就切割一個字串出來?

TOP

回復 25# EGBT
  1. Option Explicit
  2. Sub Ex()
  3.     Dim 數值表 As Variant, e As Variant
  4.     數值表 = "數值甲%A#數值1%A#數值2%A#數值123456%A#數值abc"
  5.     '*******************************************
  6.     'Split : 以所指定的字串, 分割而成為陣列
  7.     數值表 = Split(數值表, "%A#")
  8.     '*******************************************
  9.     For Each e In 數值表
  10.         MsgBox e
  11.     Next
  12. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 26# GBKEE


    好喔 謝謝大大

TOP

回復 26# GBKEE


    哈囉 GBKEE 大大~

若是這個寫法"數值"與"陣列"比較非單純數值,若是日期呢?

TOP

回復 26# GBKEE


    關於前個問題的Match Date

將 M = Application.Match(Ar(i), ProductRun.Range("A:A"), 1)

=>  M = Application.Match(CLng(CDate(Ar(i))), ProductRun.Range("A:A"), 1)

謝謝你囉

TOP

回復 26# GBKEE


    GBKEE大大您好...很不好意思,我突然有一個問題

假設 "數值1" 在 "陣列1" 做Match

比對出來是好幾列,

那我要怎麼抓出比對後的列數,在B欄的內容?

例如:比對出來100列 (A100),那可以抓出 (B100) 的內容嗎?

TOP

        靜思自在 : 每天無所事事,是人生的消費者,積極、有用才是人生的創造者。
返回列表 上一主題