Sub DivideByTenThousand(sourceRange As Range)
Application.ScreenUpdating = False ' 禁用屏幕刷新
Application.Calculation = xlCalculationManual ' 禁用自动计算
Dim inputData As Variant
Dim outputRange As Range
Dim i As Long, j As Long
' 一次性读取原始数据到数组
inputData = sourceRange.Value
' 设置输出区域(源区域右侧一列)
Set outputRange = sourceRange.Offset(0, 1)
' 处理数据数组
For i = LBound(inputData, 1) To UBound(inputData, 1)
For j = LBound(inputData, 2) To UBound(inputData, 2)
If IsNumeric(inputData(i, j)) Then
inputData(i, j) = Round(inputData(i, j) / 10000, 2)
Else
inputData(i, j) = 0
End If
Next j
Next i
' 一次性写入结果
outputRange.Value = inputData
' 恢复Excel设置
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Application.ScreenUpdating = False ' 禁用屏幕刷新
Application.Calculation = xlCalculationManual ' 禁用自动计算
Dim inputData As Variant
Dim outputRange As Range
Dim i As Long, j As Long
' 一次性读取原始数据到数组
inputData = sourceRange.Value
' 设置输出区域(源区域右侧一列)
Set outputRange = sourceRange.Offset(0, 1)
' 处理数据数组
For i = LBound(inputData, 1) To UBound(inputData, 1)
For j = LBound(inputData, 2) To UBound(inputData, 2)
If IsNumeric(inputData(i, j)) Then
inputData(i, j) = Round(inputData(i, j) / 10000, 2)
Else
inputData(i, j) = 0
End If
Next j
Next i
' 一次性写入结果
outputRange.Value = inputData
' 恢复Excel设置
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub