0

录制宏时,我想将单元格的当前值更改为取决于原始值的新值。不要将其设置为“记录”值。

示例:单元格中的值需要从 .1234(文本)更改为 0,1234(数字)。和 0.56789 到 0,56789

我的工作方法是:

record macro
"F2" : to change value,
"home" : go to beginning,
"del",
"del",
"0",
",",
"return",
stop record macro

但是当我在其他字段上使用宏时,即使原始值为 0.5678,该值也会更改为 0,1234。

4

1 回答 1

1

这可以在 VBA 中完成,但最简单的解决方案(如果所有值都以“.”开头)是使用内置的“文本到列”Excel 选项(只需选择整个列然后 ALT+A、+E、 +F)。如果这必须用 VBA 完成,请告诉。希望仅此一项有所帮助。

编辑我编写了这段代码来解决您的问题(基于单元格值以“。”开头的规则,然后通过在初始文本中添加“0”来切换到数字)。然后 Excel 将“数字”格式作为隐式格式。

Sub ChangeFormat()
For i = 1 To 2 'This is the row index (it's now set to the 1st 2 rows.)
    For j = 1 To 2 'This is the column Index (i.e. column 2 is B, 1 is A, etc.) (it's now set to the A and B columns)
        If Left(ActiveSheet.Cells(i, j), 1) = "." Then
            ActiveSheet.Cells(i, j).Value = "0" & ActiveSheet.Cells(i, j).Value
        End If
    Next j
Next i
End Sub
于 2013-11-14T13:10:13.980 回答