VBA早間檔
VBA早間檔,利用簡單的幾分鐘,學習一些簡單的VBA知識,提升工作效率
今日主題
VBA早間檔,今天我們繼續來學習一些常見的簡單操作,之前我們分享過關於工作表的排序的一個方法,可能是因為之前的考慮並不是很前面,在小夥伴們實際的操作中也是出現了 一些問題,集中體現下如果出現2位及以上的數字的時候,排序會出現錯誤
因為文本排序模式默認是按照第一位的大小來排序的,所以今天我們來優化下。
案例展示和解析
依然是和上次差不多的工作表,不過我們增加了12班,16班等這些兩位數的班級,嘗試著去避免上一次的代碼出現的問題。
從上面的結果來看,最新版的代碼中已經成功的杜絕了之前多位數可以出現的排序錯誤的問題
代碼解析
今天我們依然是利用數組的方式來解決這個問題
我們先2個數組,首先第一個數組就是所有的工作表名稱中的數字所組成的數組
For i = 1 To n
arr1(i) = Val(Mid(Sheets(i).Name, 3))
Next
val函數的使用方法,在之前19點檔我們第三系列VBA和函數的篇章中有講述過用法和作用,他主要的作用就是講數字提取出來,但是他使用的前提是數字開頭的文本。
然後我們就可以利用arr1這個數組進行排序了
For i = 1 To n
arr2(i) = Application.WorksheetFunction.Large(arr1, i)
Next
數組有一個large可以得到數組中的第一個大,第二個,這樣的方法。後面講到數組的時候,大家就會明白了。
大致的用法就是
s=large(arr,N)
想要排名第幾的數組的內容,N就是幾
==========================================
以上就是今天的VBA早間檔的全部內容,感謝大家的捧場~~
明天早上7:30,準時再見
今天將兩種排序方法的文檔都匯總起來,大家可以回復「排序」來獲得兩種 不同的排序方法的源碼