在表单上打印值

时间:2014-04-29 16:27:34

标签: vba excel-vba excel

我有一些存储在Collection和数组中的值。我想在表单上显示这些值。字典和数组中的值基本上是作为消息存储到用户的值,在执行宏之后他需要知道这些值。我尝试使用文本框这样做,但它并没有如此整齐地出现,每次都需要附加进入文本框的文本。此外,由于值存储在数组中,并且我遍历数组,因此文本会重复出现,而不仅仅是值。我的意思是对于数组的第二个值,我只需要显示第二个值,但它会附加第一个值。有没有其他方法可以做到这一点?或者我做错了什么?任何帮助将不胜感激。

编辑1 这是我到目前为止编写的代码 warningBox是文本框 totalRows,sheetArray,dummyArray都是数组 errorCollection是集合

For arrayIterator = 0 To UBound(totalRows)
    If totalRows(arrayIterator) > 500 Then
        warningBox.Text = " More values for" & sheetArray(arrayIterator)
    End If
Next arrayIterator
arrayIterator = 0
For collectionIndex = 1 To errorCollection.Count
    dummyArray = errorCollection(collectionIndex)
    If UBound(dummyArray) > 0 Then
        warningBox.Text = warningBox.Text & sheetArray(collectionIndex - 1) & "has value"
        For arrayIterator = 0 To UBound(dummyArray)
            warningBox.Text = warningBox.Text & dummyArray(arrayIterator)
        Next arrayIterator
    End If
Next collectionIndex

编辑2 该系列的内容如下 键:字符串值 值:变量数组

所以我想显示以下内容 1.数组中不在集合中的元素(totalRows) 2.集合中数组的元素。(dummyArray)

1 个答案:

答案 0 :(得分:0)

而不是这个,它将集合项的值附加到文本框中的现有文本:

warningBox.Text = warningBox.Text & sheetArray(collectionIndex - 1) & "has value"

执行此操作,根据集合项的值分配文本框的.Text属性:

warningBox.Text = sheetArray(collectionIndex - 1) & "has value"

<强>更新

这是一个黑暗中的镜头,但我想也许这会做你想要的,如果我正确猜测你想要取文本框并首先附加集合中的项目。所以你会有类似的东西:

"Text box text Collection.Item(1) has value"

然后你想追加数组中的所有项目,所以你会得到:

`“文本框文本Collection.Item(1)具有值:Array(0),Array(1),Array(2),Array(3)”

要做到这一点,而不是迭代数组(这是问题!)使用Join函数将数组强制转换为分隔字符串,只对整个数组执行一次追加:

If UBound(dummyArray) > 0 Then
    warningBox.Text = warningBox.Text & sheetArray(collectionIndex - 1) & "has value"

        warningBox.Text = warningBox.Text & Join(dummyArray, ", ")

End If