- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
4#
發表於 2010-8-8 00:56
| 只看該作者
本帖最後由 luhpro 於 2010-8-8 02:52 編輯
回復 3# danny001
原先以為你列出的資料是沒有規律性的,
後來發現在列表中除了 E I O Q U 等 5 個英文被拿掉以外,
其他都有按照順序排列,
所以利用了一些方式做出如
HP_a.zip (3.11 KB)
的檔案, (檔案大小從 4394KB 縮小到 18KB)
主要是將除了上述 5 個英文字以外的文字放入列表中,
然後當作是 31 進制的數字來計算個數即可.
比較特別的是驗證的部份因要考慮到文字必須在列表中,長度為 3 碼, 還要不包括 "000" 這個數,
所以用以下的公式來達成 :
=AND(MATCH(LEFTB(A2,1),$E$1 E$31,0)*MATCH(MIDB(A2,2,1),$E$1 E$31,0)*MATCH(RIGHTB(A2,1),$E$1 E$31,0)<>0,LENB(A2)=3,A2<>"000")
利用 Match() 函數來確認每個文字都有在列表中.
至於想改成 VBA 程式 :
1. 與 VBA 程式有關的討論應發表於 Excel程式區
2. 因你的檔案中沒什麼太多與計算有關的東西,
所以改成 VBA 程式可能程式所佔的空間反而變更大,
所以不是很建議你改用 VBA. |
|