返回列表 上一主題 發帖

可否簡化 VBA 語法

不用範圍物件變數,應可加快執行速度。

Sub test()
    Dim d As Object
    Dim arr
    st = Timer
    Set d = CreateObject("Scripting.Dictionary")
    For Each x In Split("TPD.TPD-both.TPD-viewing.GSA", ".")
        d(x) = ""
    Next x
    arr = Range("A1:A" & ActiveSheet.UsedRange.Rows.Count)
    For i = 1 To UBound(arr)
        If d.exists(arr(i, 1)) Then arr(i, 1) = ""
    Next i
    [A1].Resize(UBound(arr), 1) = arr
    Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    Set d = Nothing
    arr = ""
    MsgBox Format(Timer - st, "0.0秒")
End Sub
[b]Kubi[/b]

TOP

回復 21# jsc0518
. 是用於標識子字串邊界的字串字元,以產生各字串所組成的一維陣列。
你也可以隨意定義區隔字串字元,例如改用逗號(,)也可以。
若改成逗號會像如下陳述:
Split("TPD,TPD-both,TPD-viewing,GSA", ",")

TOP

        靜思自在 : 真正的愛心,是照顧好自己的這顆心。
返回列表 上一主題