vba - Excel中的视觉基础
问题描述
我需要你的帮助
,我已经在 Microsoft Excel 中创建了一个模块,并编写了这段代码。
我想将数字转换为单词
,例如,如果我在工作表的单元格中输入数字 5,我想通过使用我调用的新函数 (Number_To_Words) 来显示这个结果“五叙利亚磅”,但是当我使用时结果为 0函数
这段代码有什么问题???
Function TheOnes(number As Integer)
suffix1 As String
suffix2 As String
suffix1 = "one syrian pound"
suffix2 = "syrain pounds"
Select Case number
Case 1: TheOnes = suffix1
Case 2: TheOnes = " Two " + suffix2
Case 3: TheOnes = " Three " + suffix2
Case 4: TheOnes = " Four " + suffix2
Case 5: TheOnes = " Five " + suffix2
Case 6: TheOnes = " Six " + suffix2
Case 7: TheOnes = " Seven " + suffix2
Case 8: TheOnes = " Eight " + suffix2
Case 9: TheOnes = " Nine " + suffix2
End Select
End Function
Function Number_To_Words(number As Integer)
Select Case Len(number)
Case 1: Number_To_Words = TheOnes(number)
End Select
End Function
解决方案
您对 suffix1 和 suffix2 的声明缺少以下DIM
命令:
Dim suffix1 As String
Dim suffix2 As String
此外,您需要先将单元格中的值转换为字符串,然后再使用 测试Number_To_Words中的长度LEN
。
尝试将测试更改为:
Select Case Len(CStr(number))
此外,请检查后缀 2 中“syrian”的拼写。
编辑
您可以用以下稍微整洁的替代方法替换您的TheOnes功能:
Function TheOnes(number As Integer)
Dim suffix
suffix = Array(" Zero", " One", " Two", " Three", " Four", " Five", " Six", " Seven", " Eight", " Nine")
TheOnes = suffix(number)
TheOnes = TheOnes & " syrian pound"
If number > 1 Then TheOnes = TheOnes & "s"
End Function
推荐阅读
- php - 未定义属性:数组到对象的转换
- node.js - Sequelize:isNewRecord 总是假的
- firebase - 从 watchOs 6 独立应用程序更新 Firebase
- linux - 获取 nginx 运行状态为 bool
- angular - Angular 9.1.3 中primeng 9.1.2 的p-dialog 直接显示在我的组件上,而不是覆盖
- powershell - 使用 BitTransfer 下载文件不起作用
- r - 如何在 R 中为线性回归选择数值列
- lingo - LINGO/LINDO 编码(整数线性规划)
- mode - 有什么技巧可以启动偏置模式吗?
- json - 如何快速将所有电话联系人传递给 JSON API