我在Excel/VB中有一个小脚本,我正在尝试使用它。我想要做的就是选择一个动态范围的数据进行复制,但是我似乎找不到任何关于如何获取网格数据的帮助/代码(比如A11)。
下面是我从宏录制中获得的选择数据范围的代码:
Range("D291:D380").Select
我希望我可以只做Range(Current).Select
或其他什么,但那不起作用。
任何帮助都是非常感谢的。
发布于 2010-02-05 02:21:06
您是否尝试过:
对于一个单元格:
ActiveCell.Select
对于多个选定的单元格:
Selection.Range
例如:
Dim rng As Range
Set rng = Range(Selection.Address)
发布于 2010-02-05 06:27:26
如果你想用一个动态生成的字符串来获取一个范围,那么你只需要像这样构建这个字符串:
Range(firstcol & firstrow & ":" & secondcol & secondrow).Select
发布于 2010-02-05 20:44:17
这可能无助于直接回答你的问题,但在尝试使用动态范围时,我发现它很有用,可能会对你有所帮助。
假设在您的工作表中,单元格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将根据参考单元格选择所有连续的单元格。
https://stackoverflow.com/questions/2202093
复制相似问题