我正在编写一个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
我想要发生两件事之一。
一个。始终自动接受是,因此弹出窗口不会显示给用户。 (插入后我会在VBA中重新合并)
B中。有没有办法在没有合并的情况下向下移动。
答案 0 :(得分: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
答案 1 :(得分: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
但请注意,第28行下方的合并区域也可以通过此操作取消合并。例如,如果将单元格B30:F30合并,则上面的代码将导致它们取消合并。