我目前正在制作一个简单的电子邮件列表,供我的办公室用于群发电子邮件。我希望第一行是标题(我目前冻结了第一行),并且每当您单击某一列以选择它时(例如单击“C”列),它都会自动选择除标题/第一行之外的所有内容。
我如何设置工作表以始终执行此操作?
答案1
一种可能的方法(仅适用于 A 至 E 列):
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lrow As Long
Dim sCol As Long
sCol = Target.Column
If Not Intersect(Target, Columns("A:E")) Is Nothing Then
If Intersect(Target, Columns(sCol)).Address = Columns(sCol).Address Then
lrow = Cells(Rows.Count, Target.Column()).End(xlUp).Row
Range(Cells(2, Target.Column()), Cells(lrow, Target.Column())).Select
End If
End If
End Sub
如果您选择整列,则选择将更改为第 2 行,直到最后一行。如果您选择列中的单个单元格,则不会发生任何事情。
要应用此功能,请右键单击工作表选项卡,选择“查看代码”,然后将代码粘贴到 Visual Basic 编辑器的大白色代码区域中。关闭 VBE。如果您运行 Excel 2007 或更高版本,请记住将工作簿保存为启用宏的文件。