![](/img/trans.png)
[英]Conditionally clear contents of range of cells in a row based on cell value
[英]How to clear contents of a range in a row, when a specific cell of that row is selected?
我有一個表格,范圍從(“C22:Q26”),其中單元格(“R22”),(“R23”),(“R24”)到(“R26”)是要連續選擇的單元格,清除內容。
I want to clear contents of a range("C22:Q22"), when cell ("R22") is selected.
Similarly clear contents of a range("C23:Q23"), when cell ("R23") is selected, and so on up to range("C26:Q26") when cell ("R26") is selected.
我寫了這個,放在工作表代碼中。
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
嘗試使用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
如果您的代碼在“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 Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.