使用ActiveCell.Offset(0,1).Value在VBA中选择多个单元格

使用ActiveCell.Offset(0,1).Value在VBA中选择多个单元格,vba,excel,Vba,Excel,我从VBA开始,必须做一个程序,能够从一个选定的单元格中检索值,该单元格将用作参考 当我使用Activecell函数选择一个单元格,并使用Activecell.Offset(0,1).Value等进行操作时,我就能够做到这一点。 但是,如何在同时选择多个单元格时进行相同的操作,并且能够一次获取1个单元格值,并执行Activecell.Offset…然后识别第二个单元格值并检索正确的信息等等 使用宏记录器,我看到当我选择多个值时,它指向 Range("Y8,Y9,Y10,Y11").Select

我从VBA开始,必须做一个程序,能够从一个选定的单元格中检索值,该单元格将用作参考

当我使用
Activecell
函数选择一个单元格,并使用
Activecell.Offset(0,1).Value
等进行操作时,我就能够做到这一点。 但是,如何在同时选择多个单元格时进行相同的操作,并且能够一次获取1个单元格值,并执行
Activecell.Offset…
然后识别第二个单元格值并检索正确的信息等等

使用宏记录器,我看到当我选择多个值时,它指向

Range("Y8,Y9,Y10,Y11").Select 'etc....
谢谢你的帮助,希望我对我要做的事情已经足够精确了

非常感谢 奥利维尔

使用

Range(ActiveCell, ActiveCell.Offset(0, 1))

那你就可以这样用了

For Each cell In Range(ActiveCell, ActiveCell.Offset(0, 1))
    Debug.Print cell.Value
Next cell
这相当于

Range(ActiveCell, ActiveCell.Offset(0, 1)).Select ' or ActiveCell.Resize(1, 2).Select
For i = 0 To 1
    Debug.Print ActiveCell.Offset(0, i)
Next i

我知道这有点晚了,OP可能有解决方案,但我认为他想要的可以通过使用
Selection
来实现,比如:

Dim r As Range, c As Range

If TypeOf Selection Is Range Then Set r = Selection Else Exit Sub

For Each c In r
    '/* put the code you want here */
    Debug.Print c.Address
    DebUg.Print c.Offset(0,1).Value
Next

以防有人偶然发现相同的问题/问题/要求,将其作为答案发布。

我不确定我是否理解这一点。“但是,如何在同时选择多个单元格的同时进行相同的操作,并能够获取1选择单元格值并执行ActiveCellOffset”-这是否意味着您选择了多个单元格,但是只需要一个单元格的值,或者您选择了多个单元格,并且希望每个值都超出选定范围?是的,我们的想法是选择多个单元格,并且希望每个值都超出选定范围。非常感谢EngJon为我的问题指出模糊的部分Hello实际上它不做我想做的事情Hello实际上它不做我想做的事情实际上我想能够同时选择多个单元格并检索每个单元格的内容,并可能对每个单元格执行一次操作。选中然后复制。粘贴。。下一步选择单元格复制过去等。。。你知道怎么做吗?非常感谢你的邀请help@cyberol让我重新表述一下这个问题,看看我是否理解正确。您希望在选择的每个单元格上执行循环,但不必逐个选择这些单元格。我说得对吗?
Dim r As Range, c As Range

If TypeOf Selection Is Range Then Set r = Selection Else Exit Sub

For Each c In r
    '/* put the code you want here */
    Debug.Print c.Address
    DebUg.Print c.Offset(0,1).Value
Next