Страницы: 1
RSS
Макрос не работает для диапазона ячеек
 
Макрос не хочет работать, если его применять для нескольких ячеек. Работает только для одной ячейки.
Собственно, тело макроса:
Sub devideby1000()
'
' devideby1000 Macro
'
' Keyboard Shortcut: Ctrl+r
'
With ActiveCell
If IsNumeric(.Value) And Not IsEmpty(.Value) Then
If .HasFormula Then
.Formula = "=(" & Mid(.Formula, 2) & "  ;)  /1000"
Else
.Formula = "=" & .Formula & "/1000"
End If
End If
End With
End Sub

Можете, плз, подсказать, что нужно поправить, чтобы оно работало, если выделить несколько ячеек.

Спасибо
 
вместо with
Код
for each c in selection.cells

соответственно, вместо end with - next
и везде, где у вас точка перед свойствами, заменить на c.
например,
Код
if c.hasformula then
Изменено: ikki - 02.03.2013 14:22:10
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Уважаемый Ikki,
большое спасибо за ответ, однако у меня не получилось сделать так, чтобы макрос работал, как запланировано:
делил бы на 1000 все (одиночные ячейки и группу выделенных ячеек \ диапазоны), не убивая ссылок.
По Вашей рекомендации исправил макрос вот на следующий:

Sub DivideBy1000()
For Each c In Selection.Cells
   If IsNumeric(c.Value) And Not IsEmpty(c.Value) Then
       If c.HasFormula Then
           c.Formula = "=(" & Mid(c.Formula, 2) & ")/1000"
       Else
           c.Formula = "=" & c.Formula & "/1000"
       End If
   End If
Next
End Sub

Visual Basic выдает ошибку:

compile error,variable not defined.
и выделяет первую строку макроса желтым.

Файл с макросом приложен.

Буду Вам очень признателен за помощь!

Спасибо!
 
Код
Dim c As Range
For Each c In Selection.Cells
 If IsNumeric(c.Value) And Not IsEmpty(c.Value) Then
 If c.HasFormula Then
 c.Formula = "=(" & Mid(c.Formula, 2) & " ;) /1000"
 Else
 c.Formula = "=" & c.Formula & "/1000"
 End If
 End If
Next


Variable not defined или что такое Option Explicit и зачем оно нужно?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх