通过数组高效循环

我有一列我想用首字母replace的全名。

我目前正在这样做:

Dim n As Long Dim varray As Variant Dim FullNameRange As Range Dim FullName As String varray = Range(NDLstaffCol & FirstLineItemRow & ":" & staffCol & LastRow + 1) For n = FirstLineItemRow To UBound(varray, 1) Set FullNameRange = ActiveSheet.Range(staffCol & n) FullName = FullNameRange.Value FullNameRange = Left(FullName, 1) & Mid$(FullName, InStr(FullName, " ") + 1, 1) Next 

LastRow引用最后一条logging作为全局variables。

与同一模块中的其他子例程相比,这需要很长时间。

有一个更好的方法吗?

作为参考,我永远不知道全名,所以一个硬编码的查找/replace将无法正常工作。 有<500条logging。

 Dim n As Long, rng As Range Dim varray As Variant Dim FullNameRange As Range Dim FullName As String, v Set rng = Range(staffCol & FirstLineItemRow & ":" & staffCol & LastRow + 1) varray = rng.Value For n = 1 To UBound(varray, 1) v = varray(n, 1) varray(n, 1) = Left(v, 1) & Mid$(v, InStr(v, " ") + 1, 1) Next rng.Value = varray