我制作了一段代码,当单元格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
答案 0 :(得分:4)
您可以尝试这样的事情......
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