【发布时间】:2016-05-10 17:08:18
【问题描述】:
我需要以下代码方面的帮助。我想做的是,从活动单元格(可以是任何单元格)开始,选择右侧的所有单元格(=第一列)+左侧的所有单元格(=最后一列)+上面的所有单元格,直到突出显示的行 + 下面的所有单元格,直到突出显示的行。请看附资料Sample Data
例如,在示例数据中,如果活动单元格是 G6,则代码将选择从 A2 到 J7 的整个范围。同样,如果活动单元格是 F12,代码将选择从 A11 到 J13 的整个范围。
Sub sel()
Dim LastCol As Long
With ActiveSheet
LastCol = .Range("A1").SpecialCells(xlCellTypeLastCell).Column
Dim FirstCol As Long
With ActiveSheet
LastVrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(WorksheetFunction.Max(1, Selection.Row, LastVrow), _
WorksheetFunction.Max(1, Selection.Column, LastCol)), _
Cells(WorksheetFunction.Min(Selection.Worksheet.Rows.Count, _
Selection.Row), _
WorksheetFunction.Min(Selection.Worksheet.Columns.Count, _
Selection.Column, FirstCol))).Select
End With
End With
End With
End Sub
【问题讨论】:
-
灰色的行真的是空的吗,甚至没有公式?
-
Scott - 是的,它们确实是空的。
-
@SamM ,如果 G6 是活动单元格,它应该选择 A5 到 J7 的范围,对吧?
-
@Kellsens - 不,它应该从 A2 到 J7 中选择,因为 G6 在“Header 1”组中,如果你愿意的话。