我编写了一段代码,当单元格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问题是范围(“L3”)是一个合并的单元格,实际上是范围(“L3:N4”)。这将导致在删除单元格内容后检查单元格是否为空白时出现问题。
我现在正在寻找一种方法来做一些类似于这项工作的事情:
ElseIf Range("L3").MergeArea.Cells(1,1).Value = "" Then
Range("E11:E12,G11:G12,I11:I12,K11:K12") = ""
End If发布于 2017-05-04 16:33:42
你可以试试这样的..。
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 Subhttps://stackoverflow.com/questions/43788220
复制相似问题