Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2010, 23:49   #21
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

напишите так и все будет в порядке, например, ячейка "А1":

Код:
[a1].FormulaR1C1 = "=(R[-4]C[1]-R[4]C[1])": [a1]=[a1]*процент
Если все же необходимо вписать сразу в формулу, можно сделать так, например:

Код:
процент = 0.3
ActiveWorkbook.Names.Add Name:="процент", RefersToR1C1:=процент
[a1].FormulaR1C1 = "=(R[3]C[0]-R[3]C[1])*процент"

Последний раз редактировалось EugeneS; 02.11.2010 в 00:01.
EugeneS вне форума Ответить с цитированием
Старый 02.11.2010, 00:01   #22
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от EugeneS Посмотреть сообщение
например, ячейка "А1":
У меня же так
Код:
With Cells(dat * 44 + 39, 7)
        .FormulaR1C1 = "=(R[-4]C[1]-R[4]C[1])* " & процент
            .NumberFormat = "0"
        .Value = .Value
End With
valerij вне форума Ответить с цитированием
Старый 02.11.2010, 00:09   #23
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

Код:
процент = 0.3
With Cells(dat * 44 + 39, 7)
        .FormulaR1C1 = "=(R[-4]C[1]-R[4]C[1])"
        .Value = .Value * процент
        .NumberFormat = "0"
        .Value = .Value
End With
EugeneS вне форума Ответить с цитированием
Старый 02.11.2010, 00:12   #24
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от EugeneS Посмотреть сообщение
Код:
процент = 0.3
With Cells(dat * 44 + 39, 7)
        .FormulaR1C1 = "=(R[-4]C[1]-R[4]C[1])"
        .Value = .Value * процент
        .NumberFormat = "0"
        .Value = .Value
End With
Ну, наконец- то, фу....
Спасибо!

Но все равно, когда то, было решение, умножение формулы на ~
valerij вне форума Ответить с цитированием
Старый 02.11.2010, 00:13   #25
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Когда вы наводите мышку на переменную на строке, отмеченной желтым (с ошибкой), то там должно показаться Empty, если это так и есть на самом деле. И тогда уж точно можно понять, что стало причиной ошибки. Если это переменная "процент", надо лишь посмотреть, почему она пустая. Если это-то что-то другое, там будет видно
motorway вне форума Ответить с цитированием
Старый 02.11.2010, 00:35   #26
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Когда вы наводите мышку на переменную на строке, отмеченной желтым (с ошибкой), то там должно показаться Empty, если это так и есть на самом деле. И тогда уж точно можно понять, что стало причиной ошибки. Если это переменная "процент", надо лишь посмотреть, почему она пустая. Если это-то что-то другое, там будет видно
Не, "процент", не пустой, показывает = 0,039

А может само умножение надо связать, через & ?

Последний раз редактировалось valerij; 02.11.2010 в 00:38.
valerij вне форума Ответить с цитированием
Старый 02.11.2010, 10:30   #27
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Вот так работает
Код:
Sub ПроверкаЗарПлаты()
    Application.EnableEvents = False: Application.ScreenUpdating = False
    If (ActiveSheet.Name = "Лист1") Then Procent = "0.039"
    If (ActiveSheet.Name = "Лист2") Then Procent = "0.042"
    If (ActiveSheet.Name = "Лист3") Then Procent = "0.0465"
    For dat = 0 To 30
        With Cells(dat * 44 + 39, 7)
            .FormulaR1C1 = "=R[-4]C[1]-R[4]C[1]* " & Procent
            .NumberFormat = "0"
            .Value = .Value
        End With
    Next
    Application.EnableEvents = True: Application.ScreenUpdating = True
End Sub
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 02.11.2010, 12:49   #28
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
Вот так работает
Не правильно работает, у тебя формула имеет такой вид
Код:
=H35-H43* 0,039
надо
=(H35-H43) * 0,039
но это ладно, в пустой, новой, книги работает, а в моей, нет, ищу...
Хотя вот так, все ОК!!
Код:
Sub ПроверкаЗарПлаты()
Dim процент#
Application.EnableEvents = False: Application.ScreenUpdating = False
If (ActiveSheet.Name = "ЛЕН") Then процент = 0.039
If (ActiveSheet.Name = "КИЕВ") Then процент = 0.042
If (ActiveSheet.Name = "ДЕНИС") Then процент = 0.0465
    For dat = 0 To 30
        Cells(dat * 44 + 39, 7) = (Cells(dat * 44 + 35, 8) - Cells(dat * 44 + 43, 8)) * процент
        Cells(dat * 44 + 39, 7).NumberFormat = "0"
    Next
Application.EnableEvents = True: Application.ScreenUpdating = True
End Sub
valerij вне форума Ответить с цитированием
Старый 02.11.2010, 12:56   #29
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Не правильно работает, у тебя формула имеет такой вид
Код:
Код:
=H35-H43* 0,039
надо

=(H35-H43) * 0,039
Согласен, пока код копал, скобки куда-то делись)))
И тем не менее, работает и со скобками:
Код:
Sub ПроверкаЗарПлаты()
    Application.EnableEvents = False: Application.ScreenUpdating = False
    If (ActiveSheet.Name = "Лист1") Then Procent = "0.039"
    If (ActiveSheet.Name = "Лист2") Then Procent = "0.042"
    If (ActiveSheet.Name = "Лист3") Then Procent = "0.0465"
    For dat = 0 To 30
        With Cells(dat * 44 + 39, 7)
            .FormulaR1C1 = "=(R[-4]C[1]-R[4]C[1])* " & Procent
            .NumberFormat = "0"
            .Value = .Value
        End With
    Next
    Application.EnableEvents = True: Application.ScreenUpdating = True
End Sub
И формула имеет нужный вид =(H35-H43) * 0,039
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 02.11.2010, 13:11   #30
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
И тем не менее, работает
Да, работает, перехожу в свою книгу, не работает!!
Я фигею, ни чего не делал, все заработало.
valerij вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Значение выбранного диапазона. Vasek007 Microsoft Office Excel 2 29.09.2010 21:53
Как отследить значение переменной в другом приложении vramil Общие вопросы Delphi 7 23.05.2010 16:27
Вывести текст в зависимости от выбранного Polotenchik HTML и CSS 2 16.04.2010 13:44
как получить значение переменной smoke888 PHP 3 20.06.2008 02:11
Как получить значение системной переменной в С++ PersonaGrata Общие вопросы C/C++ 2 29.02.2008 22:14