在Excel中选择ActiveCell行的第1到10列。

4

这涉及到Excel中的宏。

当按下一组键时(即触发宏),我需要对具有ActiveCell的行的1至10列进行一些格式更改。

目前,我正在选择整行。

ActiveCell.EntireRow.Select

然而,我需要仅选择第 1 到第 10 行。我认为应该是以下内容:
ActiveCell.Range(1, 10).Select

但那并不起作用。

为了明确,我已经阅读过关于

ActiveCell.Offset(5, -4).Select

但这种方法在我的情况下是行不通的。ActiveCell可以是该行的任何一列,因此硬编码偏移量是无法帮助的。
因此,Excel专家们,我希望这是一个简单的问题,只是我无法找到答案。请帮帮忙。
4个回答

13

如果始终是第1列到第10列(即A到J),那么这个应该可以工作:

Range("A" & ActiveCell.Row & ":J" & ActiveCell.Row)
例如,如果活动单元格为M14,那么这将选择范围A14:J14。然后,您可以按照自己的喜好进行格式设置。
希望这有所帮助。

谢谢。是的,这个可以用。而且比我之前发布的临时答案更好。 - partha

1
好的。这是我所做的,它可以正常工作。
ActiveSheet.Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 10)).Select

在我看来,这种方法有点糟糕。如果有更好的方法,请回复。在我们找到更好的方法之前,我想这是寻找答案的人们所能得到的最佳答案。


0

这将会起作用

Range("A" & ActiveCell.Row).Resize(1,10).select

0

如果适用的话..花了很多时间才找到,需要一个更可编程 - 自动化的答案,以便在一行上工作并获得结果。

        Dim N7 As String: N7 = RANGE("N7")    'workcell N7 shows eg:  A:J    
        Intersect(Rows(ActiveCell.row), RANGE(N7).Columns).Select   'YES ANSWER

    'other:
        If application.Max(Intersect(Rows(ActiveCell.row), RANGE(N7).Columns)) > 0 Then

      MsgBox "YES" & Space(10), vbQuestion  ', "title": end if    & vbCr &
Else: MsgBox "NO" & Space(10), vbQuestion: End If ', "title": end if    & vbCr &

'Cells(ActiveCell.row, J6).OFFSET(, 1).RESIZE(, 6).Select    'YES: offset works on immediate cols for 1 row
'Cells(ActiveCell.row, J6).RESIZE(, 5).Select                'yes on 4 immediate cols for 1 row   (row, col)
'Cells(ActiveCell.row, B5).select

工作单元 N7 包含: =SUBSTITUTE(SUBSTITUTE(CELL("address",$A7),"$",""),ROW(),"")&":"&SUBSTITUTE(SUBSTITUTE(CELL("address",$J7),"$",""),ROW(),"")


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接