向右移动一个单元格

时间:2018-04-05 15:41:32

标签: excel vba sendkeys

我正在尝试在宏中向右移动一个单元格。

if(x1 - x2 > 0){
    $(id).children('a[data-slide="next"]').click();
} else {
    $(id).children('a[data-slide="prev"]').click();
}

SendKeys似乎不是这个问题的答案,因为它将TAB或RIGHT箭头直接放入下一行宏代码中,仅模拟键盘敲击。还有另一种方法可以将我的细胞选择从Bn的末尾移动到Cn到Cn,其中n是未知的吗?

4 个答案:

答案 0 :(得分:2)

我认为你正在遵循以下代码,代码注释中的解释:

Dim LastRow As Long
Dim LastCellColC As Range

' find last row with data in column "B"
LastRow = Cells(Rows.Count, "B").End(xlUp).Row

Set LastCellColC = Range("B" & LastRow).Offset(0, 1)

' if you realy need to use Select
LastCellColC.Select

我认为这就是你真正追求的,将公式从“C5”复制到列“C”中的最后一个单元格(根据“B”栏中数据的最后一行)

Dim LastRow As Long

' find last row with data in column "B"
LastRow = Cells(Rows.Count, "B").End(xlUp).Row

' copying the formula from "C5" all the way to the last cell
Range("C5").AutoFill Destination:=Range("C5:C" & LastRow), Type:=xlFillDefault

答案 1 :(得分:2)

引用活动单元格右侧的一个单元格:

ActiveCell.Offset(0, 1)

要将单元格的地址返回到右侧:

MsgBox ActiveCell.Offset(0, 1).Address

向右移动选择一次:

ActiveCell.Offset(0, 1).Select

您的答案中的代码,但整理了一下:

Range("C5").Copy
Range("B5").End(xlDown).Offset(columnoffset:=1).Activate
Range(Selection, Selection.End(xlUp)).Select

它并没有任何事情。它复制但不粘贴。

答案 2 :(得分:2)

您的代码可以归结为:

range("B5").End(xlDown).Offset(columnoffset:=1).value = range("C5").value

或者,如果您只需要粘贴值:

MAX(CAST(REPLACE(REPLACE(name, 'CA', ''),'-S','') AS INT)) + 1

答案 3 :(得分:1)

这是我的问题的解决方法。

Range("C5").Select
Selection.Copy
Range("B5").Select
Selection.End(xlDown).Select
ActiveCell.Offset(columnoffset:=1).Activate
Range(Selection, Selection.End(xlUp)).Select