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
你正在寻找的是一个Split
function。
它是这样工作的:
Dim str As String: str = "x, y, z" Debug.Print Split(str, ",")(0)
结果是x
Split
的重要参数是string
和delimiter
,函数指定了发生的次数。 所以如果你想selecty
,那么你会把1放在那里等等。在这种情况下,你可能会在分隔符中包含空格,所以你不需要进一步修剪结果。
你可以在Instr中使用左边第一个逗号之前的所有字符。
ActiveCell = Left(ActiveCell,Instr(ActiveCell,",")-1)
感谢@pnuts,我能够完成这个任务。 我不知道通配符可以在Replace中使用。 这是我的(工作)macros:
Columns("S:S").Replace What:=",*", Replacement:=""