【问题标题】:How can I apply dynamic number formatting?如何应用动态数字格式?
【发布时间】:2019-09-09 13:29:15
【问题描述】:

我为我的加密货币投资组合编写了一个 Excel 文档。我在表格中添加新货币,然后通过 API 将数据提取到表格中以获取价格。我将结果格式化如下:#.##0,00000000 [$ETH](用于以太坊)。

我想要实现的是,当我在 A 列中输入货币时,B 列中的值被格式化为这种货币。

示例:http://prntscr.com/p3sof8

因此,如果我在 A5 中输入 XRP,B5 中的值将显示为 0,00000000 XRP。 我不会使用固定数量的货币,因为我可能每天都会添加新货币。

上述逻辑的基本版本是:

将 A 列中的货币输入到格式参数中,例如:#.##0,00000000 [$],但 BTC 除外,其格式为:฿0,00000000 .

【问题讨论】:

    标签: excel vba number-formatting


    【解决方案1】:

    将其放在您的工作表中,例如“Sheet1”

    Private Sub Worksheet_Change(ByVal Target As Range)
        With Target
            If .Count = 1 Then
                If .Column = 1 Then
                    If .Value <> "BTC" Then
                        .Offset(, 1).NumberFormat = "0.00000000" & """ " & .Value & """"
                    Else
                        .Offset(, 1).NumberFormat = """" & ChrW(&HE3F) & """" & "0.00000000"
                    End If
                End If
            End If
        End With
    End Sub
    

    【讨论】:

    • 非常感谢您的回答。它似乎有效,但它移动了小数点。我不是 VBA 专业人士,尝试编辑了一下,但没有成功:prntscr.com/p4kwix 是否有可能有 0,00000000 - 所以总是 8 位小数?谢谢!
    • 更新了我的答案,似乎它之前使用千位分隔符作为小数点,所以我删除了它。我还添加了一个条件,如果同时编辑多个单元格,则会停止它,因为如果这样做会导致错误。
    • 另一个问题:我可以将表达式“绑定”到一个表吗?因为我需要这个功能,例如在第 3 列的 Table1 上,在第 5 列的 Table2 上等等?
    • @KGx 可能但“另一个问题:”应该作为另一个问题发布。以下是您可以在下一个问题中回答的几个问题:您在同一张纸上是否有多个表格,或者它们是否位于不同的表格中?他们都有相同的起始列吗?偏移量应该保持不变吗?还可以尝试添加一些代码,也许是更解释性的图片
    • 好的,谢谢 - 我会打开另一个问题并包含建议的内容。
    【解决方案2】:

    无需使用 VBA。您可以使用条件格式来做到这一点。

    做具体的例子:

    1. 转到单元格 B5
    2. 点击Conditional Formatting > New Rule...
    3. 选择Use a formula to determine which cells to format
    4. 如公式,输入=$A$5="XRP"
    5. 单击格式并在数字选项卡上,将其设置为自定义,例如#.##0,00000000 [$XRP]

    我将由您来概括这一点

    【讨论】:

    • 谢谢 - 我已经试过了,但是由于我使用了许多不同的货币,条件格式看起来很乱
    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多