Нужна помощь с моим кодом для длины с отделкой в ​​VBA - PullRequest
0 голосов
/ 02 марта 2019

У меня есть первичный ключ в столбце F - длина 4 символа. У меня есть имя объекта в столбце X - длина от 1 до 40 символов

Мне нужно объединить оба столбца и получить результат в столбце CD.

Но длина колонки CD должна быть не более 20 символов.Приведенный ниже код отлично работает, когда общее количество символов превышает 20, но выдает ошибку, когда конкатенация меньше 20.

Может кто-нибудь подсказать, где я ошибаюсь?

Range("CD1") = "Standard_Beneficiary"
For a = 2 To Cells(Rows.Count, "F").End(xlUp).Row
        Cells(a, "CD").Value = Cells(a, "F").Value & "_" & Left(Cells(a, "X"), Len(Cells(a, "X").Value) - 10)
 Next a

1 Ответ

0 голосов
/ 02 марта 2019

Left(Cells(a, "X"),Len(Cells(a, "X").Value) - 10) Работает только в том случае, если длина Cells(a,"X").Value превышает 10 символов, в противном случае количество символов слева от вас будет отрицательным, что, конечно, невозможно.

Вы можете либоиспользуйте оператор if или используйте что-то вроде

application.worksheetfunction.max(1,Len(Cells(a, "X").Value) - 10)

вместо Len(Cells(a, "X").Value) - 10, чтобы убедиться, что это всегда положительное число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...