Помогите переделать макрос из excel в OO

Автор Vildar, 5 февраля 2014, 13:46

0 Пользователи и 1 гость просматривают эту тему.

Vildar

Всем привет,
Вот макрос на VBA Excel:
Sub Диаграма3-щелкнуть()
   Sheets("КПа, МПа").Select

      For k = 2 To 56
         If (Cells(k, 3) <> 0) Then Cells(k, 7) = Cells(k, 3) / 10
         If (Cells(k, 3) = 0) Then Cells(k, 7).Select
         Selection.ClearContents
      Next k

      For k = 2 To 56
         If (Cells(k, 6) <> 0) Then Cells(k, 8) = Cells(k, 6) / 10
         If (Cells(k, 6) = 0) Then Cells(k, 8).Select
         Selection.ClearContents
      Next k

   Sheets("График").Select
End Sub

Причем, запускается он нажатием на диаграмме. В calc такой функции нет, вроде. Думаю, не проблема будет его запускать вручную, а затем обновлять диаграмму.
Не понимаю, что такое Selection?

Помогите пожалуйста. Спасибо!

JohnSUN

Привет и добро пожаловать на форум!
А что на листе "КПа, МПа" кроме значений? Формулы есть? Или только значения?
(Лучше бы книгу приложил к сообщению - проще было бы, меньше встречных вопросов пришлось бы задавать)
Большая ли разница как запускать макрос - щелчком по диаграмме или по кнопке рядом с ней?
Selection - это текущее выделение, ячейка, диапазон или целый лист. В этом макросе этим словом обозначают то, что только что выделили с помощью метода .Select
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Vildar

Нет, формул там нет.
Приложил пример.
Спасибо за оперативность.
Макрос не мой. Что-то мне кажется он очень простую операцию делает, и можно без него это сделать. Ячейку разделить на 10 и все. Только вот как быть, когда нули получаются, на диаграмме они не нужны (

[вложение удалено Администратором]

JohnSUN

Совершенно верно - макрос там совершенно лишний. Все то же самое сделали бы самые обычные формулы
В ячейке G2
=ЕСЛИ(C2="";"";C2/10) (для Экселя)
или
=IF(C2="";"";C2/10) (для Calc'а)

В ячейке H2 то же самое, только вместо F2 написать
=IF(F2="";"";F2/10)

и растянуть эти формулы до конца таблицы
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Vildar

Спасибо большое!  :beer:
Сразу испугался, что там страшный макрос, не пригляделся.

На счет нулевых значений и их отображения в диаграмме. В диаграмме они не должны отображатся, т.е. вместо нулевых значений графика - обрыв графика.
Нашел на одном форуме, что лучше в формулу вместо "" подставить NA() (или =НД() в русском варианте), отображатся в ячейке будет как #Н/Д, а на графике эти ячейки не будут обрабатываться, а будут обрывы, то что нужно. Для calc аналогично.

Для меня вопрос решен. Еще раз спасибо!