从#中删除字符以结束列的所有单元格(vba-EXCEL)

在Excel中,我有这些字段:

OOK: vpjsghe.fkds 2002 field1 Field2 # v2.0.11-28 OOK: vpjsghe.fkds 2002 field3 Field4 # v2.0.11-289 OOK: vpjsghe.fkds 2002 field5 Field6 # v2.0.11-101 OOK: vpjsghe.fkds 2002 field7 Field8 # v2.0.11-2892 

我需要从#中删除文本,直到string的末尾有这个:

 OOK: vpjsghe.fkds 2002 field1 Field2 OOK: vpjsghe.fkds 2002 field3 Field4 OOK: vpjsghe.fkds 2002 field5 Field6 OOK: vpjsghe.fkds 2002 field7 Field8 

#只在每个字段中出现一次。

你可以用一个公式来做

 =LEFT(A1,FIND("#",A1)-1) 

A1是例如。 OOK: vpjsghe.fkds 2002 field1 Field2 # v2.0.11-28

但请注意,这会导致尾随空间。 要删除你可以使用TRIM()或find一个空间FIND(" #",A1)

对于VBA代码,你可以使用类似的东西

  left(sheets(1).range("A1").value,(instr(0,sheets(1).range("A1").value,"#",vbBinarycompare))-1) 

function区中有一个内置的函数(数据 – >文本到列),这将允许您使用#作为分隔符并对其进行分割,然后删除不想要的列。 这比左边的公式容易,你不必search字符。