我通过循环遍历表单中的单元格(originalWS)在vba中创建一个数组.所以我们假设单元格(2,5)到(2,12)具有以下内容:
(2,5)Item
(3,5)Type
(4,5)Nominal Diameter
(5,5)Lead
.
.
.
(12,5)For Use with End Blocks
Run Code Online (Sandbox Code Playgroud)
因此,当我循环使用下面的代码时,我得到一个如下所示的数组:
[项目,类型,公称直径,铅,......,用于端块].
但是,我想在我的数组中的每个值之间添加两个空格.所以它看起来像这样:
[Item,"","",Type,"","",Nominal Diameter,"","",Lead,"","",......,用于结束块,"",""]
ReDim propertyArr(1, lastRow)
For i = 1 To lastRow
propertyArr(1, i) = originalWS.Cells(i + 1, 5).Value
Debug.Print propertyArr(1, i)
Next
Run Code Online (Sandbox Code Playgroud)
我试图通过数组的最终总大小循环到(lastRow*3)并向前走3.然而,我很难弄清楚如何重置我的orginalWS.cells(i,5)这些值是连续的.
换句话说,当我循环步进3时,我的值将是:
propertyArr(1,1) = originalWS.Cells(2,5).value
propertyArr(1,4) = originalWS.cells(5,5).value
propertyArr(1,7) = originalWS.cells(8,5).value
Run Code Online (Sandbox Code Playgroud)
我如何循环以便每2个位置将值存储在我的数组中,同时从片材中的连续列表中获取值.
我是否可以这样做而无需添加额外的空行,以便在原始循环中的每个值之间添加两个空格而不必添加额外的空行?
或者,我可以在第一次创建数组后在每个值之间添加两个空格?
这应该是诀窍,
Dim lRowNo As Long
lRowNo = lastRow * 3
ReDim propertyArr(1, lRowNo)
For i = 1 To lRowNo
If i Mod 3 = 1 Then
propertyArr(1, i) = originalWS.Cells(i + 1, 5).Value
Else
propertyArr(1, i) = ""
End If
Debug.Print propertyArr(1, i)
Next
Run Code Online (Sandbox Code Playgroud)