返回列表 上一主題 發帖

[發問] 請教各位前輩,如何簡化程式,感恩.

[發問] 請教各位前輩,如何簡化程式,感恩.

Dim objCol As Object
    i = 1
Set objCol = Union(Columns(i), Columns(i + 4), Columns(i + 8), Columns(i + 12), Columns(i + 16)) '第1,5,9,13欄
    objCol.Select
    objCol.ColumnWidth = 8.13  '欄位寬度   
    '=============================
    j = 2   
    Set objCol = Union(Columns(j), Columns(j + 4), Columns(j + 8), Columns(j + 12), Columns(j + 16)) '第2,6,10,14欄
    objCol.Select
    objCol.ColumnWidth = 15.3
    '=============================
    k = 3
    Set objCol = Union(Columns(k), Columns(k + 4), Columns(k + 8), Columns(k + 12), Columns(k + 16)) '第3,7,11,15欄
    objCol.Select
    objCol.ColumnWidth = 20.13
     '=============================
    l = 4   
    Set objCol = Union(Columns(l), Columns(l + 4), Columns(l + 8), Columns(l + 12), Columns(l + 16))  '第4,8,12,16欄
    objCol.Select
    objCol.ColumnWidth = 5.13
    '---------------------------------------------------
杜小平

本帖最後由 quickfixer 於 2021-4-28 13:39 編輯

回復 1# dou10801

Sub test()
    For i = 1 To 4
        Union(Columns(i), Columns(i + 4), Columns(i + 8), Columns(i + 12), Columns(i + 16)).ColumnWidth = Choose(i, 8.13, 15.3, 20.13, 5.13)
    Next i
End Sub
1

評分人數

    • ML089: 使用 Choose 簡化,讚金錢 + 2

TOP

回復 1# dou10801

Sub ex1()
    Range("A1,E1,I1,M1,Q1").Offset(, 0).ColumnWidth = 8.13
    Range("A1,E1,I1,M1,Q1").Offset(, 1).ColumnWidth = 15.3
    Range("A1,E1,I1,M1,Q1").Offset(, 2).ColumnWidth = 20.13
    Range("A1,E1,I1,M1,Q1").Offset(, 3).ColumnWidth = 5.13
End Sub
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

兩種思維模式,因原檔資料23000筆,會用心學習測試.
杜小平

TOP

        靜思自在 : 人的心地是一畦田,土地沒有播下好種子,也長不出好的果實。 -
返回列表 上一主題