Цитаты для ссылки на строку и ячейку - PullRequest
0 голосов
/ 10 июля 2020

Мне нужно преобразовать формулу 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 голос
/ 10 июля 2020

Попробуйте, пожалуйста:

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) & ")"

Если нет, укажите, что это делает против того, что вам действительно нужно.

...