我的第一个问题答案很快,以为我会问另一个问题! :)
这对你们来说可能很简单,但我似乎无法得到它。 我正在尝试将一个简单的整数数组转换为一个字符串数组,因为我有这个问题,很容易交叉一个字符串而不是一个int数组(或者我认为!)
但到目前为止这是代码:
Dim Parent1s() As String
For i = 1 To ChromoLength.Value
y = y + Val(MyArray(rnd2, i))
q = Val(MyArray(rnd2, i))
Parents1(i) = q
Next i
For i = 0 To ChromoLength.Value
Parent1s(i) = Val(Parents1(i))
Next i
'Cells(8, 1) = Parent1s
我不能sem让Parent1s产生一个字符串,不断出现不匹配错误 其他所有内容都已正确调暗,因为当我散列出parent1s语句时,其余代码都会正常工作。
谢谢你们!
答案 0 :(得分:3)
您可以使用CStr()
功能将值转换为Strings
。
Sub toString()
Dim i As Integer
Dim iStr As String
i = 5
iStr = CStr(i)
MsgBox (iStr)
End Sub
但是,我怀疑您的问题可能是因为您没有使用Option Explicit
,并且遇到了名为Parent1s
的变量以及Parents1
的问题。如果你打算让它们如此相似,我会强烈鼓励一个更好的命名约定。否则,以下似乎应该有效:
For i = 0 To ChromoLength.Value
Parent1s(i) = CStr(Parents1(i))
Next i
答案 1 :(得分:0)
如果您尝试使用Parent1s(i) = Val(Parents1(i))
将Parents1
转换为字符串,则这不是正确的方法。 Val
尝试将包含数字和字母的字符串转换为数字双精度。实际上,假设Parents1是标准数据类型,它应该隐式转换为没有问题的字符串。但如果没有,您可以随时使用Cstr()
。
这可能不是您的问题,但您从未对Parent1s()进行维度。
要标注Parent1s()
,请添加以下行:
Redim Parent1s(0 to ChromoLength.Value)
不过,如果你真的把你所有的变量都变暗了并故意选择了你的名字,你应该尝试使用其他人都清楚的变量名(这可能意味着你自己在一年内)。
将来并且为了帮助我们更好地帮助您,您应该在示例代码中包含用于标注变量的行,或者具体告诉我们您为每个变量使用的数据类型。