在我的VBA修剪长度代码中需要帮助

时间:2019-03-01 22:50:14

标签: excel vba

我的主键在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 :(得分:0)

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,以确保它始终是正数。