gpt4 book ai didi

vba - 通过删除合并单元格的内容触发 Worksheet_Change

转载 作者:行者123 更新时间:2023-12-02 16:39:16 26 4
gpt4 key购买 nike

我编写了一段代码,当单元格 L3 更改时,它会根据 L3 的内容依次更改一系列单元格。

L3 是一个从 L3 到 N4 的合并单元格,尽管如此,代码仍然可以正常工作,直到用户删除内容而不是输入新内容。

以下代码对于未合并的单元格工作得非常好:

Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = Range("L3").Address Then

If Range("L3") = Sheets("Formatering").Range("F27") Then
Tankpladser = "Vælg Tank"

ElseIf Range("L3") = Sheets("Formatering").Range("F28") Then
Range("E11") = Sheets("Formatering").Range("L3")
Range("G11") = Sheets("Formatering").Range("L4")
Range("I11") = Sheets("Formatering").Range("L5")
Range("K11") = Sheets("Formatering").Range("L6")
ElseIf Range("L3") = "" Then
Range("E11:E12,G11:G12,I11:I12,K11:K12").ClearContents
End If
End If
End Sub

问题是 Range("L3") 是一个合并单元格,实际上是 Range("L3:N4")。这会导致在删除单元格内容后检查单元格是否为空白时出现问题。

我现在正在寻找一种方法来制作与这项工作类似的东西:

ElseIf Range("L3").MergeArea.Cells(1,1).Value = "" Then
Range("E11:E12,G11:G12,I11:I12,K11:K12") = ""
End If

最佳答案

你可以尝试这样的事情......

Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("L3").MergeArea) Is Nothing Then
Application.EnableEvents = False
If Range("L3") = Sheets("Formatering").Range("F27") Then
Tankpladser = "Vælg Tank"

ElseIf Range("L3") = Sheets("Formatering").Range("F28") Then
Range("E11") = Sheets("Formatering").Range("L3")
Range("G11") = Sheets("Formatering").Range("L4")
Range("I11") = Sheets("Formatering").Range("L5")
Range("K11") = Sheets("Formatering").Range("L6")
ElseIf Range("L3") = "" Then
Range("E11:E12,G11:G12,I11:I12,K11:K12").ClearContents
End If
Application.EnableEvents = True
End If
End Sub

关于vba - 通过删除合并单元格的内容触发 Worksheet_Change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43788220/

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