excel 将百分比值从一个单元格复制并粘贴到另一个单元格

5lwkijsr  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(885)

在给定的工作表中,我有一个销售目标完成%,以及相应的奖金%。

我想检查sheet1列AI中的%,并从该表中找到相应的%。

For a2 = 3 To lastRowx
If CInt(x.Sheets("Sheet1").Range("AI" & CStr(a2)).Value) <= 0.8 Then
            pc = 0.5
        ElseIf CInt(x.Sheets("Sheet1").Range("AI" & CStr(a2)).Value) >= 1.5 Then
            pc = 5
        Else
            Set n3 = x.Sheets("Payout Curve").Range("A4:A74").Find(What:=x.Sheets("Sheet1").Range("AI" & CStr(a2)).Value, LookAt:=xlWhole)
            MsgBox x.Sheets("Sheet1").Range("AI" & CStr(a2)).Value
            'x.Sheets("Sheet1").Range("AT" & CStr(a2)).Value = x.Sheets("Payout Curve").Range("B" & CStr(n3.Row)).Value
        End If
Next a2

但是在使用find函数时,我得到了一个错误,因为它将值作为小数,而不是百分比。比如84%应该返回60%,但我的80%被检测为0.8。

izkcnapc

izkcnapc1#

是的,百分比值实际上是十进制值,因此Excel将其视为十进制值。%的意思无非是*(1/100)。80%只是显示0.8的另一种方式。如果使用%值,则始终使用十进制值。
如果你在一个单元格中有一个(十进制)值,并希望十进制值以xx%格式显示,你只需要更改单元格NumberFormat-底层值将始终是十进制,但它的显示方式可以更改。
你甚至可以用一些VBA代码来做这件事。更改NumberFormat属性以将小数显示为百分比值,可以如下所示进行:

Sub setFormatToPercent(cell As Range)
    cell.NumberFormat = "0%"
End Sub

相关问题