2015-03-26 1 views
0

У меня есть строка выпадающих списков, и я пытаюсь сделать макрос, чтобы, если эта строка полностью заполнена, я мог выделить ячейки под этой строкой, затем запустите макрос и залейте эти выделенные ячейки значением из ячеек предыдущей строки.Использовать макрос в excel 2010 для копирования значений в ячейку из ячейки непосредственно над ней

Вот мой код до сих пор, его довольно просто, но каждый раз, когда я его запускаю, я получаю несоответствие типа времени выполнения «13».

Private Sub CommandButton1_Click() 

If Application.Selection = 1 Then  'This line is the problem 
Exit Sub 
ElseIf Application.Selection > 1 Then  'This line is also a problem 
Selection.SpecialCells(xlCellTypeBlanks).Select 
Selection.FormulaR1C1 = "=R[-1]C" 
End If 

End Sub 

ответ

0

Вы можете чистить это обратно в короткий код, чтобы работать только на пустые ячейки, которые существуют в Selection.

Если Selection является недействительным, или если нет нет пустых ячеек, код просто заканчивается с учетом обработки ошибок

Private Sub CommandButton1_Click() 
On Error Resume Next 
If Selection.Cells.Count > 1 Then Selection.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C" 
End Sub 
+0

Это работает для клеток при выборе более одной ячейки, но если выбрана одна ячейка остальные ячейки заполнены с ошибкой опорного значения. Даже одна клетка, которая была выбрана возвращает ошибку опорного значения. Именно по этой причине я задаю этот вопрос в первую очередь. Спасибо за быстрый ответ. – snowbox117

+0

@ snowbox117 совершенно верно! изм. – brettdj

+1

Он работает! Огромное вам спасибо, я проработал около 4 часов и не нашел ничего полезного. Итак, еще раз спасибо. – snowbox117