- 帖子
- 1447
- 主題
- 40
- 精華
- 0
- 積分
- 1471
- 點名
- 0
- 作業系統
- Windows 7
- 軟體版本
- Excel 2010 & 2016
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2020-7-15
- 最後登錄
- 2025-3-24
|
18#
發表於 2023-3-17 11:50
| 只看該作者
回復 1# johnny1680
謝謝前輩發表此主題與範例,謝謝各位前輩指導
今天後學藉此帖學習到很多知識,練習到很多方法,以下學習心得請各位前輩指教
執行前:
執行結果:
Option Explicit
Sub TEST_1()
Dim Brr, C%, j%, i&, xR As Range
'↑宣告變數:Brr是通用型變數,(C,j)是短整數變數,
'i是長整數變數,xR是儲存格變數
C = Cells(1, Columns.Count).End(xlToLeft).Column
'↑令C這短整數變數是 第1列最右側有內容儲存格欄號
If C <= 2 Then Exit Sub
'↑如果C變數<=2!就結束程式執行
Set xR = Range([A2], Cells(1, C))
'↑令xR這儲存格變數是 [A2]到(第1列第C變數欄儲存格),
'令xR這儲存格變數是這範圍儲存格(物件變數)
Brr = xR
'↑令Brr這通用型變數是 二維陣列,以xR變數(儲存格值)帶入
For i = 1 To UBound(Brr)
'↑設順迴圈!i從1到Brr陣列縱向最大索引號列
For j = 1 To UBound(Brr, 2)
'↑設順迴圈!j從1到Brr陣列橫向最大索引號欄
Brr(i, j) = Format(Brr(i, j), "000|")
'↑令i迴圈列j迴圈欄Brr陣列值是指定文字格式的字串
'指定文字格式的字串:若原是數字!就補0成3碼連接"|"
Next
Next
With xR.Offset(4, 0)
'↑以下是關於xR變數向下偏移4列範圍儲存格的程序
.Value = Brr
'↑令該範圍儲存格值是Brr陣列值
.Offset(0, 1).Sort KEY1:=.Item(2, 1), _
Order1:=1, Key2:=.Item(1), Order2:=1, _
Orientation:=xlLeftToRight
'↑令該範圍儲存格向右偏移1欄範圍儲存格,
'做兩層次橫向順排序:
'第1層次以該範圍內下方2列第1欄儲存格為排序基準,
'第2層次以該範圍內第1格儲存格為排序基準
.Replace "|*", "", Lookat:=xlPart
'↑令該範圍儲存格值做文字置換:
'將"|"符號(含)右側的所有文字 置換為空字元
End With
End Sub |
|