2017-02-22 14 views
1

Когда я объединяю ячейки, а несколько ячеек содержат значения, появляется предупреждение о том, что сохраняется только верхнее левое значение диапазона. Я знаю, что я могу избежать этого предупреждения с помощью:Excel VBA, У предупреждений есть число

Application.Display = False 

Но я также хотел бы выполнить код, когда появился бы предупреждение. я когда-то делал ошибки с:

On Error Resume Next 
If Err.Number = 424 Then 
... 

Есть ли способ сделать то же самое для предупреждения?

+1

Я не верю, что предупреждения имеют ряд или любое другое имущество, вы можете проверить программно (I Я никогда не видел, чтобы кто-нибудь пытался «заманить» предупреждения, как мы ловушки ошибок). Как правило, вам нужно будет написать логику, чтобы проверить условие, которое вызывает предупреждение (например, в блоке 'If') и обрабатывать код таким образом. –

ответ

3

Вместо проверки предупреждений, вы можете проверить непосредственно, если ячейка является частью диапазона объединенных клеток:

Sub testMerge(cell as Range) 
    If cell.MergeCells Then 
     Debug.Print cell.Address & " is within Merged Range." 
     If cell.MergeArea.Cells(1, 1).Address = cell.Address Then 
      Debug.Print cell.Address & " is first cell of Merged Range" 
     End If 
    End If 
End Sub 
+0

Это. И то же самое для любых других «предупреждений» о конкретном хосте (подробности реализации приложения), которые не имеют абсолютно никакого отношения к ошибкам во время выполнения (механизм выполнения VBA). –

+0

Не совсем то, что я хотел, но хорошее обходное решение. Благодарю. – Flippowitsch