excel 使用ActiveCell在VBA中选择多个单元格,偏移量(0,1),值

7lrncoxx  于 2023-02-05  发布在  其他
关注(0)|答案(3)|浏览(187)

我开始在VBA和必须做一个程序,能够检索值从选定的单元格将被用作参考。
当我用Activecell函数选择一个单元格并使用ActiveCell.Offset(0, 1).Value等时,我可以做到这一点。但是,如何在同时选择多个单元格时做同样的事情,并能够一次取一个单元格的值,然后执行Activecell.Offset...,然后识别第二个单元格的值并检索适当的信息等。
使用宏记录器,我看到当我选择多个值时,它指向

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

谢谢你的帮助,并希望我已经足够精确地对我正在尝试做什么。
非常感谢olivier

agxfikkp

agxfikkp1#

任一用途

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
ndasle7k

ndasle7k2#

我知道这有点晚了,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

作为答案发布,以防有人偶然发现相同的问题/事项/需求。

fnx2tebb

fnx2tebb3#

我今天正想弄清楚这个问题,偶然发现了这个帖子,所以我想我应该更新它,在那里我找到了一个简单的答案。
我从https://excelchamps.com/vba/range-offset/开始
Range(Range("A1").Offset(1, 1), Range("A1").Offset(5, 2)).Select
因此,OP希望使用ActiveCell作为起始位置,并使用Offset选择任意范围,结果如下所示:

Range(ActiveCell.Offset(1, 1), ActiveCell.Offset(5, 2)).Select

相关问题