[算表] VBA如何將字串內容視為邏輯運算內容?
軟體: Office Excel
版本: 2013
我有個需求,需要將字串內容視為運算內容,例如:
Debug.Print 某種語法(“1 = 1”)
結果要得到 True
會有這個需求是因為字串內容是隨機的,不限制有幾項判斷,也不限定And或Or,
所以希望可以整理成單一字串後進行判斷。
自串可能會是:
A Or B and C Or D Or E …
以上,還請各位高手協助,感激不盡!
手機提問,排版不佳請見諒
--
┌─────────────────────────────┐
│就這樣,終於到了啟程的日子。 │
│和來機場送行的朋友們說著玩笑話,其實內心恍恍惚惚像在作夢。│
│也似乎是因為,為了走到「出發」這一步,耗盡了全部心力。 │
└─────────────────石田裕輔《不去會死!》─┘
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.4.74 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1621310220.A.389.html
→
05/18 12:28,
2年前
, 1F
05/18 12:28, 1F
→
05/18 12:28,
2年前
, 2F
05/18 12:28, 2F
→
05/18 12:28,
2年前
, 3F
05/18 12:28, 3F
→
05/18 12:43,
2年前
, 4F
05/18 12:43, 4F
→
05/18 12:43,
2年前
, 5F
05/18 12:43, 5F
→
05/18 12:46,
2年前
, 6F
05/18 12:46, 6F
→
05/18 12:46,
2年前
, 7F
05/18 12:46, 7F
→
05/18 12:47,
2年前
, 8F
05/18 12:47, 8F
→
05/18 12:47,
2年前
, 9F
05/18 12:47, 9F
→
05/18 13:00,
2年前
, 10F
05/18 13:00, 10F
→
05/18 13:00,
2年前
, 11F
05/18 13:00, 11F
→
05/18 13:02,
2年前
, 12F
05/18 13:02, 12F
→
05/18 13:02,
2年前
, 13F
05/18 13:02, 13F
→
05/18 13:11,
2年前
, 14F
05/18 13:11, 14F
→
05/18 13:11,
2年前
, 15F
05/18 13:11, 15F
謝謝so大的協助,後來用了新增一個function來解決這個問題:
https://imgur.com/a/qXgUwiZ
這樣就可以在Evaluate中使用Like功能
※ 編輯: foolkids (36.228.85.128 臺灣), 05/19/2021 08:20:56
推
05/19 19:36,
2年前
, 16F
05/19 19:36, 16F
→
05/19 19:37,
2年前
, 17F
05/19 19:37, 17F
→
05/19 19:37,
2年前
, 18F
05/19 19:37, 18F
→
05/19 19:38,
2年前
, 19F
05/19 19:38, 19F
我的使用場景是這樣:
1. 維護者Key-in篩選條件,例如:"IsLike([欄位A],""A*"")"
2. 程式後續將中括號[]裡的欄位A轉換成特定資料,例如 "A0312"、"A1130"、"B0050"..
我實際上的場景是一張大表跑迴圈,大表的標題是欄位A~欄位H。
迴圈每列執行時,都替換中括號內的字串(第n列的欄位A),等後續送去Evaluate判斷
3. 所以篩選條件本來是"IsLike([欄位A],""A*"")" 會變成
"IsLike("A0312",""A*"")",送去Evaluate判斷後就可以知道每列是否符合篩選條件
4. 篩選條件可能會依據狀況而改變,使用者只要維護字串就好,不用動程式碼,
例如我條件可能會先判斷索取資料的人,決定條件為
a."IsLike([欄位A],""A*"")" 或
b."IsLike([欄位A],""B*"")" 或更複雜,想要
c."OR(AND([欄位B] > "10", IsLike([欄位A],""C*""), IsLike([欄位A],""D*"")"
如此一來就可以用同一段程式碼進行動態邏輯變更
※ 編輯: foolkids (220.137.31.203 臺灣), 05/20/2021 19:31:04
Office 近期熱門文章
PTT數位生活區 即時熱門文章