VBA:整数数组到字符串数组,以便于转换

时间:2012-09-29 19:50:58

标签: vba excel-vba excel

我的第一个问题答案很快,以为我会问另一个问题! :)

这对你们来说可能很简单,但我似乎无法得到它。 我正在尝试将一个简单的整数数组转换为一个字符串数组,因为我有这个问题,很容易交叉一个字符串而不是一个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语句时,其余代码都会正常工作。

谢谢你们!

2 个答案:

答案 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)
不过,如果你真的把你所有的变量都变暗了并故意选择了你的名字,你应该尝试使用其他人都清楚的变量名(这可能意味着你自己在一年内)。

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