这是关于excel中的宏。
当按下组合键(即触发宏)时,我需要对具有ActiveCell的行的第1列到第10列进行一些格式更改。
目前我正在选择整行
ActiveCell.EntireRow.Select
但是,我只需要选择第1行到第10行。我认为它应该像
ActiveCell.Range(1, 10).Select
但这不起作用。
为了清楚起见,我已经阅读了
ActiveCell.Offset(5, -4).Select
但这不符合我的情况。 ActiveCell可以是行的任何列,因此硬编码的偏移量无济于事。
所以,那里的优秀大师,我希望这是一个快速的东西,只是在某种程度上我找不到答案。请帮忙。
答案 0 :(得分:13)
如果它始终是第1列到第10列(即A到J),那么它应该起作用:
Range("A" & ActiveCell.Row & ":J" & ActiveCell.Row)
例如,如果activecell是M14
,那么这将选择范围A14:J14
。然后,您可以按照自己喜欢的方式格式化。
希望这有帮助
答案 1 :(得分:1)
确定。这就是我所做的,它的确有效。
ActiveSheet.Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 10)).Select
在我看来,这有点像黑客。如果有什么更好的,请回复。直到我们得到更好的东西,我想这对于那些来找我的人来说是最好的答案。
答案 2 :(得分:0)
这将有效
Range("A" & ActiveCell.Row).Resize(1,10).select
答案 3 :(得分:0)
如果适用的话......花了很多时间来寻找,需要一个更可编程的自动化答案,以获得结果 - 在1行上工作。
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
workcell N7有: = SUBSTITUTE(SUBSTITUTE(CELL( “地址”,$ A7), “$”, “”),ROW() “”)及 “:” &安培;替换(SUBSTITUTE(CELL( “地址”,$ J7) , “$”, “”),ROW(), “”)