我根据输入到工作表的结果开发了一个数组。使用命令按钮,我可以将必要的数据填充到延迟表中。我面临的问题是我无法将数组结果扩展到延迟表上我想要的方式。在延迟表上,在10和10之间存在一列偏移。 11和4列之间的偏移在13和13之间。 14。
arval = "" 'This will be the total strig value of the individual array values that are captured
a = 0 'counts the total number of rows of data that exist in the array
For i = 2 To lr 'Start the array
aval = wsg.Range("A" & i).Value
If aval = "Y" Then 'Set the search parameters
arval = wsg.Range("B" & i).Value & "~#pop#~" 'Start collecting data with the B column
For j = 3 To 14
arval = arval & wsg.Cells(i, j).Value & "~#pop#~" 'continue collecting information in the various columns
Next j
ReDim Preserve array1(a)
array1(a) = arval
a = a + 1
End If
Next i
wsd.Range("G2:X15").ClearContents 'Clears the inserts range
If a > 0 Then
cr = 2
For i = LBound(array1) To UBound(array1)
cc = 7
newarr = Split(array1(i), "~#pop#~")
For j = LBound(newarr) To UBound(newarr)
wsd.Cells(cr, cc).Value = newarr(j)
cc = cc + 1
Next j
cr = cr + 1
Next i
End If
我一直在考虑使用偏移功能,但无法弄清楚如何在代码中有效地使用它。我还想过使用一个额外的数组,比如使用“b”变量,然后将cc设置为11并继续显示信息。我各种各样的困惑。 我想跳过10到11之间的一列。这就是目标。如果我能得到一个,我可以得到其余的。
答案 0 :(得分:0)
添加一些条件数学,前提是假为零,而真为零。
For j = LBound(newarr) To UBound(newarr)
wsd.Cells(cr, cc).Value = newarr(j)
cc = cc + 1 + (abs(cc=10)) + (abs(cc=13)*4)
Next j