如何在ExcelVB中获取当前单元格?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我在Excel/VB中有一个小脚本,我正在努力工作。我想要做的就是选择要复制的动态范围的数据,但是我似乎找不到任何关于如何获取网格数据的帮助/代码(比如A11)。

下面是宏记录中选择数据范围的代码:

Range("D291:D380").Select

我希望我能Range(Current).Select或者别的什么,但那不起作用。

任何帮助都是非常感谢的。

提问于
用户回答回答于

这可能无助于直接回答你的问题,但我发现,在尝试使用动态范围时,这是很有用的,这可能会帮助你解决问题。

假设工作表中的单元格A1:C3中有100到108的数字:

          A    B    C  
1        100  101  102
2        103  104  105
3        106  107  108

然后选择所有可以使用CurrentRegion

Sub SelectRange()
Dim dynamicRange As Range

Set dynamicRange = Range("A1").CurrentRegion

End Sub

这样做的好处是,如果向数字块(例如,109、110、111)添加新行或列,则CurrentRegion将始终引用扩大的范围(在本例中为A1:C4)。

我在我的VBA代码中使用了相当多的CurrentRegion,并且发现它在处理动态大小的范围时非常有用。此外,它还避免了硬代码范围在你的代码中。

最后,在我的代码中,将看到我使用A1作为CurrentRegion的引用单元。无论引用哪个单元格,它都会工作(例如,尝试:用B2替换A1)。原因是CurrentRegion将根据参考单元选择所有连续的单元格。

用户回答回答于

你试过:

ActiveCell.Select

对于多个选定单元格:

Selection.Range

例如:

Dim rng As Range
Set rng = Range(Selection.Address)

扫码关注云+社区