2013-05-06 114 views
4

這是關於excel中的宏。在Excel中選擇ActiveCell行的第1到第10列

當按下組合鍵(即宏被觸發)時,我需要對具有ActiveCell的行的第1至第10列進行一些格式更改。

目前,我有我選擇整個行

ActiveCell.EntireRow.Select 

不過,我需要只選擇1到10,我認爲它應該是這樣的

ActiveCell.Range(1, 10).Select 

但是行這是行不通的。

只是要清楚,我看了一下

ActiveCell.Offset(5, -4).Select 

但是,這不會在我的情況下工作。 ActiveCell可以是該行的任何列,因此硬編碼的偏移量不會起作用。

所以,在那裏的優秀大師,我希望這是一個快速的東西,只是不知何故我找不到答案。請幫忙。

回答

13

如果它總是然後將列1至10(即A至J)本應該工作:

Range("A" & ActiveCell.Row & ":J" & ActiveCell.Row) 

例如,如果activecell是M14那麼這將選擇範圍A14:J14。然後,你可以設置你喜歡的格式。

希望這有助於

+0

謝謝。是的,這是有效的。這比我作爲臨時答案發布的要好。 – partha 2013-05-07 06:49:03

1

好的。這就是我所做的,它的工作原理。

ActiveSheet.Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 10)).Select 

在我看來,這是一種很冒險的方式。如果還有什麼更好的,請回復。直到我們找到更好的東西,我想這對於那些來找我的人來說是最好的答案。

0

這將工作

Range("A" & ActiveCell.Row).Resize(1,10).select 
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 

工作間N7具有: = SUBSTITUTE(SUBSTITUTE(CELL( 「地址」,$ A7), 「$」, 「」),ROW(), 「」)& 「:」 & SUBSTITUTE(SUBSTITUTE (CELL(「address」,$ J7),「$」,「」),ROW(),「」)

相關問題