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

时间:2014-08-18 08:25:40

标签: vba excel-vba excel

我开始使用VBA并且必须执行一个能够从所选单元格中检索值的程序,该程序将用作参考。

当我选择一个具有Activecell功能的单元格并使用ActiveCell.Offset(0, 1).Value等时,我可以这样做。 但是,如何在同时选择多个单元格的同时做出同样的事情,并且能够一次获取1个单元格值并执行Activecell.Offset...然后识别第二个单元格值并检索正确的信息等等。 / p>

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

Range("Y8,Y9,Y10,Y11").Select 'etc....

感谢您的帮助,并希望我已经准确地了解了我的目标。

非常感谢 奥利弗

2 个答案:

答案 0 :(得分:1)

我知道这有点晚了,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 :(得分:0)

使用

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

ActiveCell.Resize(1, 2)

然后你可以那样使用

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