Страницы: 1
RSS
Сохранить буфер обмена Clipboard или CutCopyMode при изменении на листе
 
Как сохранить буфер обмена Clipboard или CutCopyMode при каком-либо изменении на листе?  
 
Например.  
 
На листе макрос на событие изменение выделения в активной ячейке размер шрифта устанавливает 10.  
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)  
ActiveCell.Font.Size = 10  
End Sub  
 
Надо скопировать некую ячейку в другую на этот же лист.  
Выделяю некую ячейку -> Копировать  
Выделяю новую ячейку -> Вставить не работает: макрос на SelectionChange отключил CopyMode.  
 
В таком виде    
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)  
If Application.CutCopyMode = xlCopy Then  
ActiveSheet.Paste  
End If  
ActiveCell.Font.Size = 10  
End Sub  
не пойдёт, т.к. вставлять надо не автоматом при выделении ячейки, а командой Вставить  
 
В таком виде    
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)  
If Application.CutCopyMode = xlCopy Then  
Exit Sub  
End If  
ActiveCell.Font.Size = 10  
End Sub  
тоже не пойдёт, т.к. всё-таки нужно, чтоб основное действия макроса (иустановить размер шрифта 10) должно обязательно срабатывать.  
 
Как бы так, чтоб и рыбку съесть, и ...удачно сесть?  
Вообще, основное действие макроса нужно, чтоб ячейка выделялась жёлтым: ActiveCell.Interior.ColorIndex = 6
 
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)  
   If Target.Count > 1 Then Exit Sub  
   If Len(Target) = 0 Then Exit Sub  
   Target.Interior.ColorIndex = 6  
End Sub
Страницы: 1
Наверх