返回列表 上一主題 發帖

[發問] 31近位計算 如何把檔案變小

[發問] 31近位計算 如何把檔案變小

XXXX: 流水號,0~9, A~Z ( I,O,U,Q,E and combination 0000 除外)                                               
以下是我個人使用最笨的方法寫出
請個位前輩教教!!謝謝


HP.zip (895.98 KB)
danny

謝謝前輩們的指導
請問何時要用VBA才比較適合ㄋ
danny

TOP

本帖最後由 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$1E$31,0)*MATCH(MIDB(A2,2,1),$E$1E$31,0)*MATCH(RIGHTB(A2,1),$E$1E$31,0)<>0,LENB(A2)=3,A2<>"000")
利用 Match() 函數來確認每個文字都有在列表中.

至於想改成 VBA 程式 :
1. 與 VBA 程式有關的討論應發表於 Excel程式區
2. 因你的檔案中沒什麼太多與計算有關的東西,
所以改成 VBA 程式可能程式所佔的空間反而變更大,
所以不是很建議你改用 VBA.

TOP

因vba才剛剛接觸到我是想請教如vba來寫出是否可以ㄋ
謝謝!!
danny

TOP

看不出你的問題所在地
要問那個工作表的哪個位置
希望條件為何請說明
不然無從下手
知之為知之,不知為不知,誠實也!

TOP

        靜思自在 : 小事不做、大事難成。
返回列表 上一主題