Невозможно обработать команду на другом листе - PullRequest
0 голосов
/ 08 октября 2018

Моя цель состоит в том, чтобы управлять формулой из первого листа с этим кодом на втором листе (в той же книге).

Dim ERP As Worksheet
Set ERP = ThisWorkbook.Worksheets(2)


ERP.Activate
ERP.Range("O1").Value = "Korositás intervallum"

ERP.Range("O2").Activate
ActiveCell.FormulaR1C1 = _
    "=IFS(RC[-1]<=0,""nem lejárt"",AND(RC[-1]>=1,RC[-1]<=30),""1-30"",AND(RC[-1]>=31,RC[-1]<=60),""31-60"",AND(RC[-1]>=61,RC[-1]<=90),""61-90"",AND(RC[-1]>=91,RC[-1]<=120),""90-120"",AND(RC[-1]>=121,RC[-1]<=180),""121-180"",AND(RC[-1]>=181,RC[-1]<=360),""181-360"",RC[-1]>361,""360 nap feletti tartozás"")"

ERP.Range("O2").Select
Selection.AutoFill Destination:=Range("O2:O1301")

Однако при последнем утверждении он продолжает работать с ошибкой

Странная вещь, если я запускаю этот код, встроенный во второй лист, он работает отлично.

Не могли бы вы сообщить, в чем может быть проблема?

Спасибо, Андрас

1 Ответ

0 голосов
/ 08 октября 2018

IF и IFS 'короткое замыкание' на true, поэтому сократите формулу, чтобы удалить ненужные критерии.

Напишите все формулы одновременно.

...

ERP.Activate
ERP.Range("O1").Value = "Korositás intervallum"

ERP.Range("O2:O1301").FormulaR1C1 = _
    "=IFS(RC[-1]<=0, ""nem lejárt"", RC[-1]<=30, ""1-30"", RC[-1]<=60, ""31-60"", RC[-1]<=90, ""61-90"", RC[-1]<=120, ""90-120"", RC[-1]<=180, ""121-180"", RC[-1]<=360, ""181-360"", RC[-1]>361, ""360 nap feletti tartozás"")"

Вот еще один вариант, который сокращаетФормула еще больше.

ERP.Range("O2:O1301").Formula = _
    "=IFS(N2<=0, ""nem lejárt"", N2<=180, SUM(FLOOR(N2, 30), 1)&"-"&CEILING(N2, 30), N2<=360, ""181-360"", ""360 nap feletti tartozás"")"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...