我已經做了一段代碼,當單元格L3發生變化時,它依次改變了單元格的範圍,具體取決於L3的內容。通過刪除合併單元格的內容來觸發Worksheet_Change
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
嘗試'elseif的範圍(「L3 「)(1)=」「Then' –
仍然沒有迴應。再說一次,如果我從下拉列表中選擇一個空格,它就可以正常工作。就好像簡單的刪除並不能真正清除L3中的所有單元格:N4 –
我加載了一個包含數據驗證的合併單元格。從列表中選擇空白並刪除單元格激發了更改,並正確地觸發了if中的代碼。不知道你爲什麼不這樣做。 –