2014-02-11 40 views
1

我正在編寫一個將向下移動合併的單元格的VBA腳本。當它這樣做時,會彈出一個框,提醒用戶此操作將取消合併的單元格。將合併的單元格向下移動

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 

If Not Intersect(Target, Range("A28")) Is Nothing Then 
    Range("c28").Insert Shift:=xlDown 
End If 

我想要發生兩件事情之一。 A.總是自動接受是,所以彈出窗口不會顯示給用戶。 (並且我將在插入後在VBA中重新合併)

B.是否有辦法向下移動而不會從頭開始。

+0

你合併** A28 **通過** C28 ** ?? –

+0

對於情況「A」,您可以在子節點的開始中使用ApplicationDisplayAlerts = False,並在最後使用Application.DisplayAlerts = True –

+0

C28:D28是在雙擊時向下移動的合併單元格。對於那個很抱歉。 – Josh

回答

1

根據您的意見這應該工作,避免了警告:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    If Not Intersect(Target, Range("A28")) Is Nothing Then 
     Range("c28:d28").Insert Shift:=xlDown 
    End If 
End Sub 

如果仍然收到警告,試試這個:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    If Not Intersect(Target, Range("A28")) Is Nothing Then 
     Application.DisplayAlerts = False 
     Range("c28:d28").Insert Shift:=xlDown 
     Application.DisplayAlerts = True 
    End If 
End Sub 
+0

我試過了,它沒有工作。警告出現了。 – Josh

+0

嘗試我的更新..................... –

0

如果你有,你沒有的情況確切地知道哪些單元格合併,您可以使用以下內容:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    If Not Intersect(Target, Me.Range("A28")) Is Nothing Then 
     Application.DisplayAlerts = False 
     Me.Range("c28").MergeArea.Insert Shift:=xlDown 
     Application.DisplayAlerts = True 
    End If 
End Sub 

但請注意,合併的ar在第28行以下的eas也可以通過此操作取消。例如,如果說單元格B30:F30合併,則上面的代碼將導致它們取消合併。

相關問題