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

我做了一段代码,当单元格L3改变时,它依次改变一个单元格的范围,取决于L3的内容。

L3是一个从L3到N4跨越的合并单元,尽pipe如此,代码也能正常工作,直到用户删除内容而不是input新内容。

下面的代码完全适用于未合并的单元格:

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