我正在尝试制作一个移动单元格范围的程序,但是我的一个Do循环不起作用。特别是列爬行的元素。当程序运行时只有A7:A9被填充而不是A7:J9。爬行确实适用于第1行到L1的移动,如果红线中没有值,则可以工作(如果A10为空,则B7:B9将填充)。我的错是什么?
Sub Columntest()
Dim i As Integer, j As Integer, k As Integer
i = 1
j = 2
k = 7
Do Until i = 11
Range("L1").Formula = Cells(1, i)
If Cells(10, i).Value = "Low" Then
Do Until j = 6
Cells(j + 15, 1).Formula = Cells(j, i)
j = j + 1
Loop
Do Until k = 10
Cells(k + 5, 1).Copy
Cells(k, i).PasteSpecial xlPasteValues
k = k + 1
Loop
End If
If Cells(10, i).Value = "High" Then
Do Until j = 6
Cells(j + 15, 1).Formula = Cells(j, i)
j = j + 1
Loop
Do Until k = 10
Cells(k + 5, 2).Copy
Cells(k, i).PasteSpecial xlPasteValues
k = k + 1
Loop
End If
i = i + 1
Loop
End Sub
答案 0 :(得分:4)
J& K变量应在do while循环中设置为默认值:
i = 1
Do Until i = 11
j = 2
k = 7
......
......
...... and so son
因为曾经的J& K在第一次循环后达到最大值,它永远不会进入J& S的Do While循环。再次K,直到你重置J& K的价值观。