Excel VBA 修改整列的數據

有網友求助信息如下:

如圖所示,因為文件是其他軟件導出的,數據量很大 超過30萬。用公式的話 我要插入輔助列 寫公式再粘貼回去數值。動不動就卡死。而且文件有好幾百個 求大神用VBA解決一下。。

Excel VBA 修改整列的數據

問題描述:

I列

小於等於25的加10

大於等於26.1的減1

那些25到26之間有小數點的那些不處理

問題分析:

1:本例是典型的根據給定的條件。然後進行邏輯運算。推薦採用 if 函數來判斷條件。

2:本例求助者僅列出了9956行的數據,但是據問題描述有超過30萬的數據,所以推薦使用數組加快程序的運行速度。

寫出的代碼如下:

Sub 自加()

Dim k, arr

'取i列最後一行的行數

k = Range("i" & Rows.Count).End(xlUp).Row

'把整個i列放入arr數組,除標題行

arr = Range("i2:i" & k)

'省略了標題行,所以k需要減1

For i = 1 To k - 1

'用if函數判斷條件,並對數組進行計算

If arr(i, 1) <= 25 Then

arr(i, 1) = arr(i, 1) + 10

ElseIf arr(i, 1) >= 25 Then

arr(i, 1) = arr(i, 1) - 1

Else

arr(i, 1) = arr(i, 1)

End If

Next i

'把計算之後的數組,重新寫入列表

Range("i2:i" & k) = arr

End Sub

運行的結果如下:

Excel VBA 修改整列的數據

雖然此GIF錄製顯示時間為1.477秒,但是實際程序如果不打斷的話,運行時間僅為

Excel VBA 修改整列的數據

所以結合VBA及數組,可以大大的提高Excel的工作效率


分享到:


相關文章: