我有一个表格,范围从("C22:Q26"),其中单元格("R22"),("R23"),("R24")到("R26")是要连续选择的单元格,以清除内容。
当单元格("R22")被选中时,我想清除某个范围(“C22:Q22”)的内容。
当单元格("R23")被选择时,类似地清除范围(“C23:Q23”)的内容,以此类推,当单元格("R26")被选择时,直到范围(“C26:Q26”)。
我写了这段代码,放在表格代码中。
Sub clearcontents()
If Range("r22").Selected Then
Range("R22").Offset(, -15).Resize(, 15).Select
Range("R22").Offset(, -15).Resize(, 15).clearcontents
ElseIf Range("r23").Selected Then
Range("R23").Offset(, -15).Resize(, 15).Select
Range("R23").Offset(, -15).Resize(, 15).clearcontents
ElseIf Range("r24").Selected Then
Range("R24").Offset(, -15).Resize(, 15).Select
Range("R24").Offset(, -15).Resize(, 15).clearcontents
ElseIf Range("r25").Selected Then
Range("R25").Offset(, -15).Resize(, 15).Select
Range("R25").Offset(, -15).Resize(, 15).clearcontents
ElseIf Range("r26").Selected Then
Range("R26").Offset(, -15).Resize(, 15).Select
Range("R26").Offset(, -15).Resize(, 15).clearcontents
End If
End Sub发布于 2019-11-10 10:42:13
尝试使用Worksheet.SelectionChange事件。将以下代码添加到工作表代码模块中。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.CountLarge <> 1 Then Exit Sub
If Not Intersect(Target, Me.Range("R22:R26")) Is Nothing Then
Me.Range("C" & Target.Row & ":Q" & Target.Row).ClearContents
End If
End Sub发布于 2019-11-10 14:31:46
如果你的代码在'Worksheet_SelectionChange‘宏中,并且没有触发,我会再次检查你是否启用了事件。

否则,这段代码应该做你想做的事情,一些检查还需要选择一个单元格:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rColumn As Range
Dim tTable As Range
Set rColumn = Me.Range("R22:R26")
Set tTable = Me.Range("C22:Q26")
If Not Intersect(Target, rColumn) Is Nothing Then
If Target.Count = 1 Then
Intersect(Target.EntireRow, tTable).ClearContents
End If
End If
End Subhttps://stackoverflow.com/questions/58785258
复制相似问题