Excel 多单元格VBA中的舍入时间
我需要在大约40k个单元格中将时间四舍五入到最接近的分钟。第I列中的20k个单元格和第J列中的20k个单元格。我不希望单独的列中的值向上或向下舍入,因为这看起来很粗糙,并且我不需要原始值。我还需要每个月在不同的电子表格上为不同的人做这件事,所以我想到了VBA并添加了一个按钮。我已经计算出了我需要在每个单元格上执行的代码,但对所有40k单元格执行此操作将非常繁琐。有没有办法缩短我的代码Excel 多单元格VBA中的舍入时间,excel,vba,Excel,Vba,我需要在大约40k个单元格中将时间四舍五入到最接近的分钟。第I列中的20k个单元格和第J列中的20k个单元格。我不希望单独的列中的值向上或向下舍入,因为这看起来很粗糙,并且我不需要原始值。我还需要每个月在不同的电子表格上为不同的人做这件事,所以我想到了VBA并添加了一个按钮。我已经计算出了我需要在每个单元格上执行的代码,但对所有40k单元格执行此操作将非常繁琐。有没有办法缩短我的代码 J4 = Range("J4") J4 = Application.WorksheetFunction.MRo
J4 = Range("J4")
J4 = Application.WorksheetFunction.MRound(J4, "0:01")
Range("J4").Value = J4
J5 = Range("J5")
J5 = Application.WorksheetFunction.MRound(J5, "0:01")
Range("J5").Value = J5
J6 = Range("J6")
J6 = Application.WorksheetFunction.MRound(J6, "0:01")
Range("J6").Value = J6
谢谢您的帮助请试试这个
Sub RoundCells()
Dim Rng As Range, c As Range
Set Rng = Range("I4:J20000")
For Each c In Rng
c.Value = Application.WorksheetFunction.MRound(c, "0:01")
Next
End Sub
不使用工作表函数和使用VBA的
ROUND
将大大加快速度。可能有用。您还需要研究循环