【发布时间】:2018-06-04 11:51:24
【问题描述】:
这是一个演示专栏。这些是用户输入的百分比值。
我试过的代码:
Sub Percent()
Dim cell As Variant
Dim cellValue As Variant
For Each cell In Selection
With cell
cellValue = .Text
MsgBox cellValue
If (cellValue Like "[0-9]*%") Then
cellValue = Left(cellValue, Len(cellValue) - 1)
.Value = cellValue
Else
Exit Sub
End If
End With
Next
End Sub
在运行此程序时,我想将“选定的单元格”转换为数字,即我想删除那个百分比符号,我不想要小数的值。只是整数(没有 % 符号)。
上面发布的代码有效,但该列应该是“文本”列。这意味着,在列的“格式单元格”选项中,它应该说文本而不是数字,然后只有我的代码有效。但是当我将“格式单元格”中的列更改为“数字”时,代码不起作用。
【问题讨论】:
-
您可以尝试将属性添加为:.NumberFormat = "General" .Value = .Value
-
您可以重新格式化为 Number 并使用 PasteSpecial 乘法(将 100 放在一个空单元格中,复制,pastespecial)。
-
@NandanChaturvedi 我删除了 cellValue = Left(cellValue, Len(cellValue) - 1) .Value = cellValue 并添加了你的两行,它运行良好。刚刚更改了 .value = ,value * 100,因为您的语句给了我十进制值。非常感谢。
-
@SJR 我会试试你的建议。感谢您的时间和精力。
-
@NandanChaturvedi 将您的评论作为单独的答案发布,以便我可以将您的评论标记为其他有疑问的用户的选择答案。