选择特定字符右侧的所有内容并将其从列中删除

时间:2015-02-03 21:33:23

标签: excel vba excel-vba

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

例如,我的S1列有类似" x,y,z"我想让S1只说x。所以基本上,我试图删除单元格中第一个逗号右侧的所有内容。我曾尝试使用替换,但这不起作用。有更简单的方法吗?

我的(失败)宏现在:

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

3 个答案:

答案 0 :(得分:2)

您正在寻找的是Split功能。

它的工作原理如下:

Dim str As String: str = "x, y, z"

Debug.Print Split(str, ",")(0)

结果为x

Split的重要参数是stringdelimiter,函数后面的数字指定了出现次数。因此,如果你想选择y,你可以将1放在那里等等。在这种情况下,你可能会在分隔符中包含空格,因此你不需要进一步修剪结果。

答案 1 :(得分:1)

您可以使用左手与Instr在第一个逗号之前为您提供所有字符。

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

答案 2 :(得分:1)

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

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