vba - 将字符串转换为双精度字(vba)
问题描述
我正在尝试将 word 文档中的文本转换为双精度文本,以便对其进行货币格式化。我从邮件合并中收到此文本。我将如何创建一个可以接收此文本并将其作为数字返回的宏?我不熟悉单词和 VBA 脚本。到目前为止我所做的是
Function stringToDouble(baseString As String)
Dim num As Double
num = Val(baseString)
stringToDouble = num
End Function
我不确定如何调用这个宏。因为它需要一个参数,所以它不会出现在宏表中。我可能完全不知道如何将文本转换为单词中的双精度词,但感谢您提供任何帮助。谢谢。请发表评论以获得任何澄清。
解决方案
你不需要这个宏!!!您需要做的就是学习如何在 Word 字段中使用格式开关。
若要控制 Word 中的数字和货币格式,请将数字图片开关添加到合并字段。去做这个:
- 选择合并域;
- 按 Shift-F9 显示字段编码。它应该类似于 {MERGEFIELD MyData};
- 编辑该字段以获得 {MERGEFIELD MyData # $,0.00} (或您喜欢的任何其他数字格式 - 见下文);
- 将光标放在此字段中的任意位置,然后按 F9 进行更新。
注 1:字段中的“#$,0.00”称为数字图片开关。其他可能性包括:
- # 0 表示四舍五入的整数
- # ,0 表示带有千位分隔符的四舍五入整数
- # ,0.00 表示精确到小数点后两位的数字,带有千位分隔符
- # $,0 表示带有千位分隔符的四舍五入的整数
- # "$,0.00;($,0.00);'-'" 表示货币,用括号括住负数,用连字符表示 0 值
注2:显示值的精度由“0.00”控制。您可以使用从“0”到“0.000000000000000”的任何值。如果你使用最后的';' 在没有任何后续的格式化开关中,(例如 # "$,0.00;($,0.00);") 零值将被抑制。请注意,这会抑制由空字段和包含 0 的字段产生的 0。
注意 3:如果您使用小数制表符或右对齐制表符来对齐值,请将开关括在引号中(即 #"$,0.00")并在 $ 符号后的域代码中插入制表符,您可以值输出与 $ 符号后发生的小数对齐。
有关更多 Mailmerge 提示和技巧,请参阅:https ://www.msofficeforums.com/mail-merge/21803-mailmerge-tips-tricks.html
推荐阅读
- windows - Powershell 脚本:列出具有特定更改日期的文件(如果可能,数量)
- javascript - 使用 ivh-treeview 自定义复选框样式
- php - Symfony 2.8:控制器中的 $form->getData() 用于更新现有实体
- php - 如何在mysql表中插入html表值
- python - 使用 Python 的 Paramiko exec_command 从 PowerShell Start-Process 启动的进程不起作用,尽管它在 SSH 终端上运行良好
- python - Windows 上的 Python 路径和 Juptyter 笔记本
- c# - 实现具有编译时顺序约束的功能处理管道
- javascript - 由于该页面而具有@的正则表达式已加载
- java - 在 java 中执行 Scanner 类的问题
- javascript - javascript 如何在索引 6 中开始 for 循环并在索引 3 中结束?