我的专栏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
答案 0 :(得分:2)
您正在寻找的是Split
功能。
它的工作原理如下:
Dim str As String: str = "x, y, z"
Debug.Print Split(str, ",")(0)
结果为x
Split
的重要参数是string
和delimiter
,函数后面的数字指定了出现次数。因此,如果你想选择y
,你可以将1放在那里等等。在这种情况下,你可能会在分隔符中包含空格,因此你不需要进一步修剪结果。
答案 1 :(得分:1)
您可以使用左手与Instr在第一个逗号之前为您提供所有字符。
ActiveCell = Left(ActiveCell,Instr(ActiveCell,",")-1)
答案 2 :(得分:1)
感谢@pnuts,我完成了这项任务。我不知道可以在Replace中使用通配符。这是我的(工作)宏:
Columns("S:S").Replace What:=",*", Replacement:=""