Board logo

標題: [發問] 31近位計算 如何把檔案變小 [打印本頁]

作者: danny001    時間: 2010-8-6 03:47     標題: 31近位計算 如何把檔案變小

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

[attach]2246[/attach]
[attach]2245[/attach]
作者: gong    時間: 2010-8-6 08:49

看不出你的問題所在地
要問那個工作表的哪個位置
希望條件為何請說明
不然無從下手
作者: danny001    時間: 2010-8-6 21:23

因vba才剛剛接觸到我是想請教如vba來寫出是否可以ㄋ
謝謝!!
作者: luhpro    時間: 2010-8-8 00:56

本帖最後由 luhpro 於 2010-8-8 02:52 編輯

回復 3# danny001

原先以為你列出的資料是沒有規律性的,
後來發現在列表中除了 E I O Q U 等 5 個英文被拿掉以外,
其他都有按照順序排列,
所以利用了一些方式做出如  [attach]2286[/attach]  的檔案, (檔案大小從 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.
作者: danny001    時間: 2010-8-9 02:03

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




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)