如何应用动态数字格式?
Posted
技术标签:
【中文标题】如何应用动态数字格式?【英文标题】: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 .
【问题讨论】:
【参考方案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。您可以使用条件格式来做到这一点。
做具体的例子:
-
转到单元格 B5
点击
Conditional Formatting
> New Rule...
选择Use a formula to determine which cells to format
如公式,输入=$A$5="XRP"
单击格式并在数字选项卡上,将其设置为自定义,例如#.##0,00000000 [$XRP]
我将由您来概括这一点
【讨论】:
谢谢 - 我已经试过了,但是由于我使用了许多不同的货币,条件格式看起来很乱以上是关于如何应用动态数字格式?的主要内容,如果未能解决你的问题,请参考以下文章