Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Переменная для формулы., Как грамотно назначить переменную для поледней формулы
 
Всем привет. Я не специалист в область макросов, но нужна помощь в их правильной работе. Есть вот такой макрос

Код
Public Sub Raschot()
    
    Dim lr&: lr = ActiveCell.Row
    
    Application.ScreenUpdating = False
 
    Range("B14").Formula2 = "=--SUBSTITUTE(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),1,1),SMALL(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),1,1),1),B" & lr & ")"
        Range("B14:B22").Select
        Selection.NumberFormat = "m/d/yyyy"
        Selection.HorizontalAlignment = xlCenter
          
        Range("C14").Formula2 = "=--SUBSTITUTE(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),12,31), LARGE(DATE(ROW(INDIRECT(YEAR(C" & lr & ")&"":""&YEAR(1))),12,31),1),C" & lr & ")"
        Range("C14:C22").Select
        Selection.NumberFormat = "m/d/yyyy"
        Selection.HorizontalAlignment = xlCenter
         
         Range("D14").Formula2 = "=--SUBSTITUTE(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),12,31),LARGE(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),12,31),1),C" & lr & ")-(--SUBSTITUTE(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),1,1),SMALL(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),1,1),1),B" & lr & "+1))+1"
        Range("D14:D22").Select
        Selection.NumberFormat = "#,##0"
        Selection.HorizontalAlignment = xlCenter
         
          
        Range("E14").Formula2 = "=IF(DAY(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""& YEAR(C" & lr & "))),2,29))=29,366,365)"
        Range("E14:E22").Select
        Selection.NumberFormat = "#,##0"
        Selection.HorizontalAlignment = xlCenter
          
       Range("F14").Formula2 = "=(--SUBSTITUTE(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),12,31),LARGE(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),12,31),1),C" & lr & ")-(--SUBSTITUTE(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),1,1),SMALL(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),1,1),1),B" & lr & "+1))+1)/IF(DAY(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),2,29))=29,366,365)"
       Range("F14:F22").Select
       Selection.NumberFormat = "m/d/yyyy"
       Selection.HorizontalAlignment = xlCenter
       
       Range("G14").Formula2 = "=$E$3*$F$3%*(--SUBSTITUTE(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),12,31),LARGE(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),12,31),1),C" & lr & ")-(--SUBSTITUTE(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),1,1),SMALL(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),1,1),1),B" & lr & "+1))+1)/IF(DAY" & _
            "(DATE(ROW(INDIRECT(YEAR(B" & lr & ")&"":""&YEAR(C" & lr & "))),2,29))=29,366,365)"
       Range("G14:G22").Select
       Selection.NumberFormat = "#,##0.00"
       Selection.HorizontalAlignment = xlRight
       Application.ScreenUpdating = True
       Range("G14").Select
End Sub

В последней формуле, где  Range("G14", есть вот такое выражение $E$3*$F$3% , для правильной работы формулы ему надо назначить переменную.
Как тут грамотно поступить?
Переменная в Formula2R1C1 при переходе по строкам., Как грамотно использовать переменную в Formula2R1C1 в расчётах, переходя по строкам ?
 
Имеется таблица в диапазоне B3:G11. Справа от таблицы выводятся результаты расчетов строк. В приложенном файле расчет работает для первой строки при одиночном клике по D3, а хотелось бы чтобы расчет происходил  при переходе по строкам  при одиночном клике в столбце D. Как такой вариант расчета делается с формулами формата А1 я разобрался, а с форматом Formula2R1C1 не получается. Представляю, что надо как-то так "...[" & переменная & "]...", но не получается. Всего формул для расчета 6, вот код первой формулы
Код
Range("I3").Select
    ActiveCell.Formula2R1C1 = _
        "=--SUBSTITUTE(DATE(ROW(INDIRECT(YEAR(RC[-7])&"":""&YEAR(RC[-6]))),1,1),SMALL(DATE(ROW(INDIRECT(YEAR(RC[-7])&"":""&YEAR(RC[-6]))),1,1),1),RC[-7])"
     Range("I3:I11").Select
    Selection.NumberFormat = "m/d/yyyy"
    Selection.HorizontalAlignment = xlCenter

Прошу помочь разобраться с переменной в этом случае. Всем спасибо.

Изменено: Иван Иванов - 12.06.2023 08:44:12
Вывод значения переменной в конкретную ячейку., Вывод значения переменной в конкретную ячейку после выполнения макроса.
 
Всем привет. Вывод результата в MsgBox работает нормально, вот вывести результат в ячейку не получается. Макрос вот такой
Код
Sub delete_1()   
Dim strText  As String, strSymb1 As String
    strText = "=--ПОДСТАВИТЬ(ДАТА(@ СТРОКА(ДВССЫЛ(ГОД(A3)&:&ГОД(B3)));1;1);НАИМЕНЬШИЙ(ДАТА(@СТРОКА(ДВССЫЛ(ГОД(A3)&:&ГОД(B3)));1;1);1);A3)"
    strSymb1 = "@"
    strText = Replace(strText, strSymb1, "")
MsgBox strText
End Sub

Обработанную формулу вывести в ячейку например B2.
Всем спасибо
Изменено: Иван Иванов - 01.06.2023 22:36:09
Различие результатов работы формул., Формула Ecel не такой результат как формула из макроса.
 
Всем привет. Сразу предупреждаю, что я неспециалист в этих делах. так что не судите строго. Вот тут Формула Excel для VBA
почерпнул очередную порцию знаний. В постах 4 и 17 описано, как переделывать формулы Excel для VBA. Всё вроде бы получилось, но выведенные данные различаются. Результат работы формулы Excel (в две строки, так и должно быть), а результат VBA всё суммирует и выводит в одну строку. в чём проблема и возможно ли это как-то исправить? Файл представил.
Всем спасибо.
Вывод данных по горизонтали, Формула выводит данные по вертикали, а надо по горизонтали.
 
Всем привет. Имею вот такую формулу
Код
=ЕСЛИ(ДЕНЬ(ДАТА(СТРОКА(ДВССЫЛ(ГОД(A1)&":"&ГОД(B1)));2;29))=29;366;365)

данные выводятся по вертикали. Возможен ли в данном случае вывод данных по горизонтали? Описание в файле. Всем спасибо.
LEAP_DAYS и NON_LEAP_DAYS, Как это написать обычными пользовательскими функциями в русском Excel
 
Всем привет. Нашел тут в интернете вот такую формулу. Возможно ли это написать обычными пользовательскими функциями  в русском Excel ? Всем спасибо за ответы.
Код
 =D1 * E1*(LEAP_DAYS(A1; B1)/366+NON_LEAP_DAYS(A1; B1)/365)
Использование функции ЕСЛИ(И, Написал формулу, но в результате пишет ошибка.
 

Всем привет. Изначально в таблице были столбцы в А (дата) в В (дата) в С (определялась високосность года) и в D С (определялась високосность года). Решил для сокращения таблицы убрать столбцы C и D. Хочу, чтобы високосность определялась в формуле. Для этого, високосность в формуле определяю так МЕСЯЦ(ДАТА(ГОД(A1);2;29))=2 и так МЕСЯЦ(ДАТА(ГОД(B1);2;29))=2. Формула для C и D была такая ЕСЛИ(И(C1="Невисокосный";D1="Високосный");1;ЕСЛИ(И(C2="Високосный";D2="Високосный");2;""))и работает исправно. На основе этой формулы пытаюсь сделать формулу для работы через столбцы А и В, написал вот такую формулу ЕСЛИ(И(A1=МЕСЯЦ(ДАТА(ГОД(A1);2;29))=2))="ЛОЖЬ";B1=МЕСЯЦ(ДАТА(ГОД(B1);2;29))=2))="ИСТИНА";5;ЕСЛИ(И(МЕСЯЦ(ДАТА(ГОД(A2);2;29))=2))="ИСТИНА";B2=МЕСЯЦ(ДАТА(ГОД(A2);2;29))=2)="ЛОЖЬ";10;"")), что-то в ней не так, пишет ошибка, а исправить не получается. Помогите разобраться, что тут неправильно. Я в этих делах новичок. Файл во вложении. Всем спасибо.

Подбор функции для расчета, Какую функцию использовать для подобного расчета
 
Всем привет. Затрудняюсь в выборе функции для вычисления. В ячейках С и D определяю високосный год или нет. Варианты в С и D могут меняться,
в результате чего меняется и вычисление. Какой функцией для подобной процедуры лучше воспользоваться? Всем спасибо.

Формула должна посчитать (если С1=Невисокосный и D1=Високосный   тогда (Первый вариант расчета)далее если С1=Високосный и D1=Високосный тогда   (Второй вариант расчета)  далее если   С1=Невисокосный и D1=Невисокосный тогда (третий вариант расчета)
Данные в А1 и В1 формулу в D1, Нужна формула по трем критериям.
 
Всем привет! Я не спец  в премудростях Excel, но нужен ответ, помогите. В А1 живет Вася А1=Вася, в В1 живет Петя В1=Петя, Вася с Петей могут меняться местом жительства (иногда  в А1 может жить Петя, а в А1 может жить Вася). Надо написать формулу Если в А1=Вася и в В1=Петя  получилось "Они не знакомы", далее тут же в формуле Если А1=Петя и В1=Вся получилось "Они переехали" далее в формуле Если А1= Вася и В1=Вася получилось "Петя ушел к Маше". Результат в ячейку D1Всем ответившим спасибо.
Изменено: Иван Иванов - 09.04.2023 19:54:00
Ошибка ЗНАЧ!, В ячейках не введены данные, появляются ошибки в столбцах D,L,Q, если данные вставлены, сообщения об ошибках исчезают.
 
Если  ячейках не введены данные, появляются ошибки в столбцах D,L,Q, если данные вставлены, сообщения об ошибках исчезают.
Всем спасибо.
Страницы: 1
Наверх