Страницы: 1
RSS
Расчет дней в году для переменной даты
 
У меня стоит задача посчитать количество дней в году приходящихся на определенную дату, пишу макрос:  
 
Worksheets(2).Cells(3, 5).Formula = "=ДАТА(ГОД(G4),12,31)-ДАТА(ГОД(G4),1,1-1)"  
Cells(3, 5).Select  
   Selection.AutoFill Destination:=Range(Cells(3, 5), Cells(e + 2, 5)), Type:=xlFillDefault  
 
В итоге в заполненых ячейках проставляется "#ИМЯ?", хотя если проделывать данную операцию в ручную все нормально значения считаются корректно, причем если вщелкуться в ячейку с любым "#ИМЯ?" все становится нормально, как можо решить проблему?
 
Я совсем недавно это уже видел :-)
 
{quote}{login=The_Prist}{date=19.10.2009 03:21}{thema=}{post}Worksheets(2).Cells(3, 5).Formula = "=Date(year(G4),12,31)-date(year(G4),1,1-1)"  
Cells(3, 5).Select  
Selection.AutoFill Destination:=Range(Cells(3, 5), Cells(e + 2, 5)), Type:=xlFillDefault  
 
P.S. Я, кстати, не Вам советовал формулы записывать рекордером? В любом случае советую делать именно так.{/post}{/quote}  
 
Да я задавал подобный вопрос вчера, хтелось бы уточнить, рекордер это функция записи макроса? как их записывать с помощью него?  
P.S. я не волшебник я только учусь, Спасибо за совет )
 
{quote}{login=The_Prist}{date=19.10.2009 03:23}{thema=}{post}Кстати, чет не глянул. Тупо поменял.  
Вы не заметили, что здесь  
ДАТА(ГОД(G4),1,1-1)  
последний аргумент нулю равен? Зачем вычитание единицы из единицы?  
Может так хотелось?  
=ДАТА(ГОД(G4),12,31)-(ДАТА(ГОД(G4),1,1)-1){/post}{/quote}  
"-1" это для того чтобы за место 364 получалось 365 дней в году, так вроде правельнее )).
 
{quote}{login=}{date=19.10.2009 03:28}{thema=Re: }{post}{quote}{login=The_Prist}{date=19.10.2009 03:21}{thema=}{post}Worksheets(2).Cells(3, 5).Formula = "=Date(year(G4),12,31)-date(year(G4),1,1-1)"  
Cells(3, 5).Select  
Selection.AutoFill Destination:=Range(Cells(3, 5), Cells(e + 2, 5)), Type:=xlFillDefault  
 
P.S. Я, кстати, не Вам советовал формулы записывать рекордером? В любом случае советую делать именно так.{/post}{/quote}  
 
Да я задавал подобный вопрос вчера, хтелось бы уточнить, рекордер это функция записи макроса? как их записывать с помощью него?  
P.S. я не волшебник я только учусь, Спасибо за совет ){/post}{/quote}  
Макросы -включить запись- напись формулы-остановить запись.  
Посмотреть что получилось
 
{quote}{login=The_Prist}{date=19.10.2009 03:37}{thema=Re: Re: }{post}{quote}{login=Dima}{date=19.10.2009 03:34}{thema=Re: }{post}"-1" это для того чтобы за место 364 получалось 365 дней в году, так вроде правельнее )).{/post}{/quote}Попробуйте вместо этого ноль в своей формуле написать и сравните результаты.  
=ДАТА(ГОД(G4),12,31)-ДАТА(ГОД(G4),1,1-1)  
=ДАТА(ГОД(G4),12,31)-ДАТА(ГОД(G4),1,0){/post}{/quote}  
Да все точно так же получилось "1-1=0" )), можно еще один вопрос у меня така просумировать значаня переменных ячеяк как правельно составить макрос?
 
{quote}{login=The_Prist}{date=19.10.2009 03:51}{thema=Re: Re: Re: Re: }{post}{quote}{login=}{date=19.10.2009 03:44}{thema=Re: Re: Re: }{post}еще один вопрос у меня така просумировать значаня переменных ячеяк как правельно составить макрос?{/post}{/quote}Чесслово - ничего не понял. Чисто интуитивно  
Cells(1,1) = Application.sum(range("B1:B10")'в ячейку А1 записываем сумму ячеек диапазона В1:В10{/post}{/quote}  
Да торопился, )))) написал загадку, вот теперь попробую сначала у меня есть столбец ячеяк Cells(e,1) к приеру, как проссумировать все ячейки "е" под, столбцем.
 
почему то вот так не выходит:  
 
Worksheets(2).Cells(e + 3, 2) =Application.sum(range(Cells(3, 2), Cells(e + 2, 3))
 
{quote}А суммировать значения, я так полагаю, надо тоже с листа 2?  
with Worksheets(2).  
.Cells(e + 3, 2) =Application.sum(.range(.Cells(3, 2), .Cells(e + 2, 3)))  
end with{/post}{/quote}  
Да тоже с листа 2, я попробовал так выдает следующее:    
Complite error:    
Expected: Syntax error
 
{quote}{login=The_Prist}{date=19.10.2009 04:17}{thema=}{post}И красненьким подсвечивает?  
А так?  
with Worksheets(2)  
.Cells(e + 3, 2) =Application.sum(.range(.Cells(3, 2), .Cells(e + 2, 3)))  
end with{/post}{/quote}  
Ага все именно так! теперь заработало но сумму расчитывает не верно почему то.
 
{quote}{login=}{date=19.10.2009 04:25}{thema=Re: }{post}{quote}{login=The_Prist}{date=19.10.2009 04:17}{thema=}{post}И красненьким подсвечивает?  
А так?  
with Worksheets(2)  
.Cells(e + 3, 2) =Application.sum(.range(.Cells(3, 2), .Cells(e + 2, 3)))  
end with{/post}{/quote}  
Ага все именно так! теперь заработало но сумму расчитывает не верно почему то.{/post}{/quote}  
А все понял))) не ту ячейку указывал, ну все ОГРОМНОЕ СПС!!!, щас забабахаю прогу и меня повысят точно))))!
 
Еще небольшой вопросик, как округлять результат вычисления до 2 цифр после запитой в получающихся расчетных значениях макроса, именно сами значения интересуют?!
Страницы: 1
Читают тему
Наверх