gpt4 book ai didi

Excel VBA onChange 事件

转载 作者:行者123 更新时间:2023-12-04 22:30:25 33 4
gpt4 key购买 nike

当值输入到 A 列时,我试图触发 onChange 事件。

现在我想要这个,如果我从 A 列到 AS 列输入任何值,该事件将触发,如果我从相同列中删除任何值,它将像编写代码一样工作。

此外,如果我复制并粘贴多个数据,它不起作用,如果我要删除多个数据,它也不起作用。

有人可以帮忙吗?下面是代码。

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim currentRow As Integer

If Not Intersect(Target, Columns("A")) Is Nothing Then

If Target.Value <> "" Then
currentRow = Target.Row
Target.Parent.Range("A" & currentRow & ":AS" & currentRow).Interior.ColorIndex = 15
Target.Parent.Range("A" & currentRow & ":AS" & currentRow).Borders.LineStyle = xlContinuous
End If

If Target.Value = "" Then
currentRow = Target.Row
Target.Parent.Range("A" & currentRow & ":AS" & currentRow).Interior.ColorIndex = 0
Target.Parent.Range("A" & currentRow & ":AS" & currentRow).Borders.LineStyle = xlNone
End If

End If
End Sub

最佳答案

Target.Value如果选择了单个单元格,则只有一个值。如果您选择多个单元格,它将成为一个数组,您的 If语句将始终计算为 False .

这是更改代码的一种方法。我有点着急,所以它可能会做得更好,但应该让你开始。

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Columns("A")) Is Nothing Then
If Application.WorksheetFunction.CountA(Target) = 0 Then
' Empty Range
For Each rw In Target.Rows
Target.Parent.Range("A" & rw.Row & ":AS" & rw.Row).Interior.ColorIndex = 0
Target.Parent.Range("A" & rw.Row & ":AS" & rw.Row).Borders.LineStyle = xlNone
Next rw
Else
' Not Empty
For Each rw In Target.Rows
Target.Parent.Range("A" & rw.Row & ":AS" & rw.Row).Interior.ColorIndex = 15
Target.Parent.Range("A" & rw.Row & ":AS" & rw.Row).Borders.LineStyle = xlContinuous
Next rw
End If
End If
End Sub

关于Excel VBA onChange 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53424439/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com