Excel 包含"的最有效的单元偏移方法;x";

Excel 包含"的最有效的单元偏移方法;x";,excel,vba,Excel,Vba,我一直在使用列(2)。复制目标:=列(1)临时偏移所有包含“x”的单元格,向左偏移一列,但是这似乎非常占用内存,而且不太可靠,因为我无法选择仅偏移“x”值 有没有什么方法可以只对满足此条件的单元格进行偏移,并且以更有效的方式进行偏移?您可能想尝试类似的方法 For i = 1 To 100 If ActiveSheet.Cells(i, 2).Value = "x" Then ActiveSheet.Cells(i, 1).Value = ActiveSheet.Cells

我一直在使用
列(2)。复制目标:=列(1)
临时偏移所有包含“x”的单元格,向左偏移一列,但是这似乎非常占用内存,而且不太可靠,因为我无法选择仅偏移“x”值


有没有什么方法可以只对满足此条件的单元格进行偏移,并且以更有效的方式进行偏移?

您可能想尝试类似的方法

For i = 1 To 100
    If ActiveSheet.Cells(i, 2).Value = "x" Then
       ActiveSheet.Cells(i, 1).Value = ActiveSheet.Cells(i, 2).Value
    End If
Next
只需将行数设置为100即可。我甚至不确定这会比你的速度快。除非我错过了你的目标

如果你想检查工作表中的所有单元格

For Each rcell In ActiveSheet.Cells
    If recll.Column >= 1 And rcell.Value = "x" Then
        ActiveSheet.Cells(rcell.Row, rcell.Column - 1).Value = ActiveSheet.Cells(rcell.Row, rcell.Column).Value
    End If
Next

但这可能需要很长时间。理想情况下,如果知道正在使用的最后一行和最后一列,则应该使用嵌套循环。这样,您只需迭代您认为包含数据的单元格。

您可能希望尝试类似的方法

For i = 1 To 100
    If ActiveSheet.Cells(i, 2).Value = "x" Then
       ActiveSheet.Cells(i, 1).Value = ActiveSheet.Cells(i, 2).Value
    End If
Next
只需将行数设置为100即可。我甚至不确定这会比你的速度快。除非我错过了你的目标

如果你想检查工作表中的所有单元格

For Each rcell In ActiveSheet.Cells
    If recll.Column >= 1 And rcell.Value = "x" Then
        ActiveSheet.Cells(rcell.Row, rcell.Column - 1).Value = ActiveSheet.Cells(rcell.Row, rcell.Column).Value
    End If
Next

但这可能需要很长时间。理想情况下,如果知道正在使用的最后一行和最后一列,则应该使用嵌套循环。这样,您只需迭代您认为包含数据的单元格。

类似于下面的答案,但每个循环和整个范围都有一个:

Sub MoveOver()

    Dim rng As Range
    Dim c As Range

    Set rng = ThisWorkbook.Worksheets("Sheet1").Range("B:B")

    For Each c In rng
        If c.Value = "x" Then c.Offset(0, -1) = c.Value
    Next c

End Sub

与下面的答案类似,但每个循环和整个范围都有一个:

Sub MoveOver()

    Dim rng As Range
    Dim c As Range

    Set rng = ThisWorkbook.Worksheets("Sheet1").Range("B:B")

    For Each c In rng
        If c.Value = "x" Then c.Offset(0, -1) = c.Value
    Next c

End Sub

不过,您必须小心,例如,如果您将范围设置为(A:C),那么使用类似于偏移量的偏移量会出现错误。因此,您必须小心从第2列或更高的列开始,并对第#列进行检查。但是,您必须小心,例如,如果您将范围设置为(a:C),您将使用类似偏移量的错误。因此,您必须小心地从第2列或更高的列开始,并对第2列进行检查#