在excel中使用VBA选择单元格

在excel中使用VBA选择单元格,vba,excel,Vba,Excel,我正在尝试使用vba在excel中选择一个单元格。我希望能够使用到变量(I&e)来选择一个单元格。其中i=3和e=13我希望能够 ActiveCell(e, i).Activate 然后选择单元格C13 ActiveCell(e, i).Activate 但仅当原始活动单元格为A1时才起作用。任何帮助都将不胜感激 我在代码中添加了注释,因此应该很容易理解 首先运行下面的代码 Sub Main() Dim i As Long ' row variable Dim e As L

我正在尝试使用vba在excel中选择一个单元格。我希望能够使用到变量(I&e)来选择一个单元格。其中i=3e=13我希望能够

ActiveCell(e, i).Activate
然后选择单元格C13

ActiveCell(e, i).Activate

但仅当原始活动单元格为A1时才起作用。任何帮助都将不胜感激

我在代码中添加了注释,因此应该很容易理解

首先运行下面的代码

Sub Main()

    Dim i As Long ' row variable
    Dim e As Long ' column variable

    i = 3 ' row 3
    e = 13 ' column 13 ("M")

    ' this will put: Cells(3,13) in Range "M3"
    Cells(i, e) = "Cells(" & i & ", " & e & ")"


    ' if you want to offset the current active cell then
    ' use Offset(x, y)

    '  use negative x to offset up
    Cells(i, e).Offset(-1, 0) = "1 up"

    '  use positive x to offset down
    Cells(i, e).Offset(1, 0) = "1 down"

    '  use negative y to offset left
    Cells(i, e).Offset(0, -1) = "1 left"

    '  use positive y to offset right
    Cells(i, e).Offset(0, 1) = "1 right"


    ' same principles apply when using range object
    Dim r As Range
    Set r = Cells(i, e)

    r.Offset(-2, 0) = "2 up"
    r.Offset(2, 0) = "2 down"
    r.Offset(0, -2) = "2 left"
    r.Offset(0, 2) = "2 right"

    Columns.AutoFit
End Sub
然后查看工作表并分析命令的作用:)


欢迎来到StackOverflow。在这里简单搜索“vba excel选择单元格”应该可以找到这个问题的几十个答案。在这里发布问题之前,请至少自己尝试找到一个解决方案,因为很可能有人曾经问过并得到了答案。谢谢。如果您想通过索引引用列,请查看R1C1语法。请看以下内容:谢谢Emmad!正是我想要的。Ken-我确实搜索并找到了Similar信息,但并不是我想要的。这是因为
ActiveCell
实际上返回了一个
Range
对象,该对象表示活动窗口中的活动单元格。所以
ActiveCell(e,i)
基本上等于
ActiveCell.Offset(e-1,i-1)
。如果原始活动单元格不是A1,那么代码当然会引用错误的单元格