首页 > 解决方案 > 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

标签: vbaexcel

解决方案


您对 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

推荐阅读