visual basic in Excel



我需要你的帮助,
我已经在Excel中创建了一个模块Microsoft我写了这段代码。
我想将数字转换为单词,
例如,如果我在工作表的单元格内输入数字 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

后缀 1 和后缀 2 的声明缺少DIM命令:

Dim suffix1 As String
Dim suffix2 As String

此外,您需要先将单元格中的值转换为字符串,然后再使用LEN测试Number_To_Words长度。

尝试将测试更改为:

Select Case Len(CStr(number))

另外,请检查后缀 2 中"叙利亚"的拼写。


编辑

您可以将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

在第二个选择的情况下,您将获得整数的长度。例如,长度将用于获取数组的大小。我相信以下内容将对您未来的努力有所帮助。我还会考虑正确缩进您的工作并使用Dim声明变量。这有助于确定声明上的变量数据类型,但是在使用Option Explicit Off时指定也可以。

Function TheOnes(number As Integer)
Dim suffix1 As String
Dim 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 number
Case 1 : Number_To_Words = TheOnes(number)
End Select
End Function

你应该摆脱Number_To_Words并直接拨打TheOnes

最新更新