该代码遍历给定范围,并将每个值转换为短月份名称。它在很小的范围内效果很好,但是我为定期获得的数据集(超过100,000行)编写了代码。它仍然可以在整个范围内工作,但是需要很长时间,并且看起来像是崩溃了,但是如果我等待约5分钟,它就可以工作。
关于如何改善这一点的任何想法?
Sub ConvertToMonth()
Dim selectedRange As Range
Set selectedRange = Application.Selection
Application.ScreenUpdating = False
For Each Cell In selectedRange
Cell.Value = MonthName(Cell.Value, True)
Next
Application.ScreenUpdating = True
End Sub
您的问题是Excel前端范围的读写速度。处理大型数据集的最佳方法是使用数组。首先,将数据集存储到数组中,操作该数组,然后输出该数组。就像我在下面所做的那样: