【发布时间】:2014-10-21 18:42:52
【问题描述】:
使用罗马数字计算器(仍在学习,所以如果这是一个简单的解决方法,请不要判断:P)
我遇到的问题是,当查看是否可以使用 Debug.print 从函数 (arr_rnnum) 中的数组中读取值时,第一个值可以正常读取,但第二个值始终返回零。我尝试在 for 循环中添加计数 j = j + 1 但这没有效果
例如,如果我将 debug.print 更改为 getting_values(0) 并在输入框中输入 X,V 它将打印 10 但如果我将其更改为 debug.print 到 getting_values(1) 它会打印 0
如果有人能看出问题所在,那将是一个很大的帮助
这是我的代码
Public Sub main()
Debug.Print getting_values(1)
End Sub
Function getting_values()
Dim arr_rnstr() As String
Dim rnstr As String
Dim arr_rnnum() As Integer
rnstr = InputBox("enter the roman numeral in descending order of value and put a comma between each")
arr_rnstr() = Split(rnstr, ",") 'splits the string the user entered into single values'
ReDim arr_rnnum(UBound(arr_rnstr)) 'sets the size of the array of numbers to the upper bound of the array of letter the user entered'
For j = LBound(arr_rnstr) To UBound(arr_rnstr) 'this section checks each value of the array of letters and replaces it with a number in a second array'
Select Case arr_rnstr(j)
Case Is = "I"
arr_rnnum(j) = 1
Case Is = "V"
arr_rnnum(j) = 5
Case Is = "X"
arr_rnnum(j) = 10
Case Is = "L"
arr_rnnum(j) = 50
Case Is = "C"
arr_rnnum(j) = 100
Case Is = "D"
arr_rnnum(j) = 500
Case Is = "M"
arr_rnnum(j) = 1000
End Select
j = j + 1
Next j
getting_values = arr_rnnum
End Function
【问题讨论】:
-
我在您的函数/方法
getting_values中没有看到参数。代表?尝试getting_values()(1),因为那将是一个方法调用,然后是返回数组的索引..我想..我在 VBA 中不是那么强 -
@Brett 感谢您的回复,但当您说您没有看到写入的参数或参数 arg(两周前才开始编码)时,我不明白您的意思。 0 和 1 表示
arr_rnnum数组中的第一个和第二个值。我试过getting_values()(1)但没用 -
罗杰。但在实际调用该方法之前它不会是数组类型。所以
getting_values(0)不是 获取结果数组的0索引,它正在调用该方法并将0或false.. 的值传递给它
标签: arrays vba function printing