excel vba 选中selection中第一列

vba代码如何实现选中当前选择区域的第一列?

与整个工作表的第一列表示方法一样,但对象是Selection,而不是Sheets,如Selection.Columns(1).Select就是选择Selection中的第一列,以下图为例:

运行宏test后的效果就是选择区域中的第一列。

知识扩展:

要选择区域中第几行第同列的单元格也和工作表一样,如表示选定区域的第2行第2列,可以用Selection.Cells(2,2),也可以用Selection.Range("B2")。

示例代码:

Sub gvntw()
    With Selection.Range("B2")
        .Value = "我是选区的B2"
        .Font.Color = vbRed
        .Interior.Color = vbYellow
    End With
End Sub
运行效果如下图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-09
Set rng = Intersect(Selection, Columns(1))
If Not rng Is Nothing Then rng.Select '判断当前选择区域是否有在第一列。

追问

那么选中range("a10:d78")中的第i行和第j列的那个单元格呢

追答

第i行和第j列是相对工作表来说,还是相对区域来说?
比如 第11行第2列
相对工作表来说就是 [B11]
相对区域来说就是[B21]

追问

当然是相对区域来说了,因为区域是变化的,所以这个问题改为选中selection中的第i行和第j列比较合适
还有
Set rng = Intersect(Selection, Columns(1))'判断当前选择区域是否有在第一列。
这个答案是选中selection与表的第一列的交集,而不是selection的第一列呀,比如selection是b3:d7,那么b3:b7就被选中

追答

x相对区域更简单了。
range("a10:d78").cells(i,j).select
range("a10:d78").columns(1).select

本回答被提问者采纳
相似回答