Excel 计算当前单元格的值,并将结果放入同一个单元格中

Excel 计算当前单元格的值,并将结果放入同一个单元格中,excel,vba,Excel,Vba,我试图根据单元格的值计算答案,并在宏执行时用计算出的值替换当前值。示例:如果L8的文本值为123,则需要前导8和第n个零,以使其长度为8个字符。所以结果看起来像80000123。以下是迄今为止我所掌握的代码。另外,我只想计算和替换可见行中可见的单元格,因为过滤器将就位。任何帮助都将不胜感激 Sub test() Dim rng As Range Dim cl As Range Set rng = Range("L4:L" & Cells(Rows.Count, "L").End(xl

我试图根据单元格的值计算答案,并在宏执行时用计算出的值替换当前值。示例:如果L8的文本值为123,则需要前导8和第n个零,以使其长度为8个字符。所以结果看起来像80000123。以下是迄今为止我所掌握的代码。另外,我只想计算和替换可见行中可见的单元格,因为过滤器将就位。任何帮助都将不胜感激

Sub test()

Dim rng As Range
Dim cl As Range

Set rng = Range("L4:L" & Cells(Rows.Count, "L").End(xlUp).row)

For Each cl In rng.Cells
    If IsNumeric(cl.Value) And Len(cl.Value) > 0 Then
    cl.Formula = "=Text((rng), ""80000000""))"      'this line errors out
    End If
Next

End Sub

您需要将该值缝合到公式中

cl.Formula = "=Text(" & cl.Value & ", ""80000000"")"
若要将该公式的结果用作实数,请添加一个双一元数

cl.Formula = "=--Text(" & cl.Value & ", ""80000000"")"
'alternate
cl.Formula = "=" & cl.Value & "+80000000"

谢谢成功了!虽然我想保留文本形式的值,但感谢您提供的真实数字提示。