Мне нужно преобразовать формулу Excel в коды VBA, однако я пытался много раз, но безуспешно. Ниже приведена формула, которую мне нужно преобразовать.
=IF(G7959<0, "Delivered to end customer " & E7959, "To be delivered to end customer " & E7959)
Ниже показано, что я пробовал, но безуспешно: параметр IC_inventory_new_row представляет переменный индекс строки. Может кто поможет посмотреть и посоветовать?
IC_inventory_WS.Cells(IC_inventory_new_row, 15).Formula = "=IF(G" & IC_inventory_new_row + 1 & "<0, " & "Delivered to end customer" & "E" & IC_inventory_new_row & "," & "To be delivered to end customer " & "E" & IC_inventory_new_row & ")"
Ответ 1 · рейтинг 1 · FaneDuru
Попробуйте, пожалуйста:
IC_inventory_WS.Cells(IC_inventory_new_row, 15).formula = "=IF(G" & IC_inventory_new_row + 1 & _
"<0, ""Delivered to end customer ""&E" & IC_inventory_new_row & _
", ""To be delivered to end customer ""&E" & IC_inventory_new_row & ")"
Но это можно написать так, чтобы не нуждаться в итерации. Я имею в виду, чтобы бросить его во всем диапазоне сразу. Попробуйте этот способ, который должен делать то, что вам нужно, если я правильно понял, что нужно:
IC_inventory_WS.Range("O2:O" & lastRow).formula = "=IF(" & Range("G2").address(0, 0) & _
"<0, ""Delivered to end customer ""&" & Range("E2").address(0, 0) & _
", ""To be delivered to end customer ""&" & Range("E2").address(0, 0) & ")"
Если нет, укажите, что это делает против того, что вам действительно нужно.