首页 > 解决方案 > 如何在VBA中的数组中保留某种形式的数字

问题描述

我有一个值表,它按不同质量的这些项目的数量列出项目 ID,如下所示:

ID      QB      QC      UI
006780  12      -       6
100780  48      15      8

依此类推一千行。作为进一步争论的一部分,我希望得到 id 并将它们移动到别处并将它们放置在彼此下方,它们之间有 2 个空白单元格。这是我想出的代码,请耐心等待,我正在努力学习:

Sub laatuJako()

Dim idRange As Range
Dim tyoWb As Workbook
Dim tyoWks As Worksheet
Dim idRivit As Integer
Dim idArray() As Variant 

Set tyoWb = ThisWorkbook
Set tyoWks = tyoWb.Sheets("Pivots->Apu")
idRivit = tyoWks.Range("Q7").End(xlDown).Row
ReDim idArray(0)
Dim varCounter As Integer
varCounter = 0

这个下一个循环是我可以形成数组的一种方式,因为它似乎在下一个循环中遇到了运行时错误 9。

For i = 0 To idRivit - 1
    tyoWks.Activate
    idArray(i) = tyoWks.Range("Q" & 7 + i).Value
    varCounter = varCounter + 1
    ReDim Preserve idArray(varCounter)

Next i

Dim k As Integer
Dim j As Integer
k = 0
j = 0
Do While k < idRivit

    tyoWks.Range("X" & 7 + j).Value = idArray(k)

    j = j + 3
    k = k + 1
Loop

End Sub

现在代码可以工作了,但似乎(不)有帮助的 VBA 将 id 属性更改为一个数字并在它们前面打印带有数字的 id,例如 006780 为 6780。这不是想要的,所以我将数组更改为字符串数组,但没有区别。现在这里不需要数组,我可以直接使用循环复制粘贴它们,但我想了解如何控制这样的事情,因为在数组更可取的情况下问题会再次出现。

抱歉,如果问题描述得不好,那么一切都是第一次。

标签: arraysvbaformatting

解决方案


推荐阅读