我正在从活动目录环境中导出大型组的CSV。这些组中的许多组都有大量的嵌套,因此我需要插入单元格,以便工作表易于阅读。
例如,我的工作表如下所示:
WS示例
诠释用户路径
0用户1 CN
0用户2 CN
1个用户3 CN
1个用户4 CN
0用户5 CN
1个用户6 CN
2用户7 CN
我正在寻找适应性的VBA脚本的帮助,该脚本从第一列读取整数值,并在该特定行的列左侧插入相应数量的单元格。约束是列表不能更改行的顺序以保留嵌套结构。
到目前为止,这是我在VBA中拥有的
Sub test()
Dim d As Integer
d = Range("A:A").End(xlDown).row
Dim c As Range
For i = d To 1 Step -1
If Cells(i, 1).Value Like "1" Then
Rows(Cells(i, 1).Column).Insert shift:=xlShiftRight
End If
Next
End Sub
当前,此代码段从该列开始计数1,并在列表顶部插入一个新行。我相信我逻辑中的错误是在If语句内,一旦解决了这个问题,我就知道可以使用ElseIf扩展它来解决其余的值。
最佳答案
这样就可以了。问题似乎在Rows(Cells(i, 1).Column).Insert shift:=xlShiftRight
行中。如果将其分解,则其计算如下:Cells(i,1).Column
等于1,因为.Cells(i,1)
的列为1。Rows(1)
1
来自上面。所以Rows(1)
是1。Rows(1).Insert
插入到第1行上方,而不管您指定的移位如何。
Sub test()
Dim d As Integer
d = Range("A:A").End(xlDown).row
Dim c As Range
For i = d To 1 Step -1
If Cells(i, 1).Value Like "1" Then
Cells(i, 1).Insert shift:=xlToRight
End If
Next
End Sub
关于mysql - 根据单元格值在Excel中插入单元格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39603440/