由於Excel 2007工作表的可寫入範圍大於舊版太多,因此欄位最多有3個英文字(舊版Excel只有2個英文字),舊程式無法處理到第3個英文字


Excel 2007欄位最大有16384欄,英文編碼到XFD。這篇文章是針對Excel 2007的英文欄位編碼規則再做修正

 


完成的全部程式如下,原理依然是將數值換算為ASCII碼再轉換為英文字母

20131223-01  

 


由左至右分段解說


最左邊計算判斷欄位英文是否為1個英文字母,後面接Case Structurs分別處理判斷後的結果

20131223-02  


若欄位英文是1個英文字母,Case Structurs的True內,數值直接加上64(英文大寫字母的ASCII碼)後轉為陣列

20131223-03  


若欄位英文是2個以上英文字母,Case Structurs的False內,數值除以26求餘數,再加上64(英文大寫字母的ASCII碼)


商數則再計算判斷欄位英文是否為1個英文字母,後面接Case Structurs分別處理判斷後的結果。若欄位英文是1個英文字母,Case Structurs的True內,數值直接加上64(英文大寫字母的ASCII碼)後轉為陣列。然後和餘數算出的數值合成1D陣列

20131223-04  


若商數欄位英文是2個以上英文字母,Case Structurs的False內,數值除以26求商數、餘數,分別加上64(英文大寫字母的ASCII碼),再合成1D陣列。然後和上上一步餘數算出的數值合成1D陣列

20131223-05  


最後英文大寫字母ASCII碼的1D陣列再轉換為英文字母

20131223-06  

 

 

20131223-07  

 

20131223-08  

, ,

未出師的小工程師 發表在 痞客邦 PIXNET 留言(0) 人氣()