select特定字符右侧的所有内容并从列中删除

我的专栏S只需要包含一个单词,但是在导入时,通常有三个单词用逗号分隔。 我只想保留单元格中的第一个单词。

例如,我的S1列有类似“x,y,z”的东西,我想让S1只表示x。 所以基本上,我试图删除单元格中第一个逗号右侧的所有内容。 我试图使用replace,但是这是行不通的。 有一个更简单的方法来做到这一点?

我的(失败)macros现在:

For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1 If Cells(i, 19) = "," Then Columns("S:i").Select Selection.Replace What:=Trim(Right(ActiveCell.Value, 25), InStr(ActiveCell.Value, ",") - 1), Replacement:="" Next 

你正在寻找的是一个Splitfunction。

它是这样工作的:

 Dim str As String: str = "x, y, z" Debug.Print Split(str, ",")(0) 

结果是x

Split的重要参数是stringdelimiter ,函数指定了发生的次数。 所以如果你想selecty ,那么你会把1放在那里等等。在这种情况下,你可能会在分隔符中包含空格,所以你不需要进一步修剪结果。

你可以在Instr中使用左边第一个逗号之前的所有字符。

 ActiveCell = Left(ActiveCell,Instr(ActiveCell,",")-1) 

感谢@pnuts,我能够完成这个任务。 我不知道通配符可以在Replace中使用。 这是我的(工作)macros:

 Columns("S:S").Replace What:=",*", Replacement:=""