如何将细胞范围向右移动

时间:2018-01-05 20:47:53

标签: excel vba excel-vba

我正在尝试编写代码,如果包含工作日的相对单元格具有值{{1},则会将单元格范围从当前单元格移动到最后一个单元格中包含数据的单元格中的数据}或fri

我的代码在下面,但是当它运行时,Excel不会响应并自行重启。我真的不知道问题出在哪里。

注意: satirow indexj

column index

1 个答案:

答案 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