1

我的第一个问题回答得如此之快,以至于我想我会再问一个问题!:)

这对你们来说可能真的很简单,但我似乎无法理解。我正在尝试将一个简单的整数数组转换为字符串数组,因为我遇到的问题很容易交叉字符串而不是 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

我无法让 Parent1s 生成一个字符串,不断收到不匹配错误 其他所有内容都已正确调暗,导致其余代码在我散列 parent1s 语句时正常工作。

多谢你们!

4

2 回答 2

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
于 2012-09-29T20:08:20.327 回答
0

如果您尝试使用 Parent1s(i) = Val(Parents1(i))转换Parents1为字符串,这不是正确的方法。Val尝试将可能包含数字和字母的字符串转换为数字双精度数。实际上,假设 Parents1 是标准数据类型,它应该隐式转换为没有问题的字符串。但如果没有,您可以随时使用Cstr().

这可能不是您的问题,但您永远不会维度 Parent1s()。

要标注Parent1s()添加此行:

Redim Parent1s(0 to ChromoLength.Value)

顺便说一句,如果您实际上已使所有变量变暗并故意选择了名称,则应尝试使用对其他人来说很清楚的变量名称(顺便说一句,这可能意味着一年后您自己)。

将来,也为了帮助我们更好地帮助您,您应该在示例代码中包含变量维度的行,或者具体告诉我们您对每个变量使用的数据类型。

于 2012-09-29T23:12:31.270 回答