我正在尝试编写代码,如果包含工作日的相对单元格具有值{{1},则会将单元格范围从当前单元格移动到最后一个单元格中包含数据的单元格中的数据}或fri
。
我的代码在下面,但是当它运行时,Excel不会响应并自行重启。我真的不知道问题出在哪里。
注意: sat
是i
,row index
是j
column index
答案 0 :(得分:0)
这应该适合你(你可以通过一次选择整个范围来省略第二个循环,只要行具有相同的长度。否则返回行循环但在if环境中): / p>
Sub shiftcell()
Dim j, lcol As Long
Dim rngFrom, rangeTo As Range
For j = 6 To 70
If ((Sheets("master").Cells(6, j).Value = "Fri") Or (Sheets("master").Cells(6, j).Value = "Sat")) Then
lcol = Sheets("master").Cells(8, Columns.Count).End(xlToLeft).Column
If (lcol >= j) Then
Set rngFrom = Range(Cells(8, j), Cells(18, lcol))
Set rngTo = Range(Cells(8, j + 1), Cells(18, lcol + 1))
rngFrom.Cut rngTo
End if
End If
Next j
End Sub