如何使用VBA删除第一个空格后单元格中的字符?

时间:2016-03-01 09:38:27

标签: excel vba excel-vba

我想使用VBA操作一些Excel工作表。我已经设法将数据复制到适当的单元格,但现在我需要删除一系列单元格中第一个空格后出现的一些字符。

我不知道列中的最后一个单元格编号,所以我必须先找出该单元格编号是什么。

这是单元格中数据的示例:

  

IT - 信息技术

     

IB6 - 信息业务

我想离开:

  

IT

     

IB6

并删除其余的单元格内容。这是我正在使用的脚本:

Dim strCoIDFull As String

Dim strCoIDShrt As String

'remove characters after the first blank space in column M 'Department Code'

LastRow = Cells(Rows.Count, 13).End(xlUp).Row

strCoIDFull = Range("M22:M" & LastRow).Value

strCoIDShrt = Left(CompanyIDFull, InStr(strCoIDFull, " ") - 1)

Range("M22:M" & LastRow).Value = strCoIDShrt

VBA代码的这一部分不起作用,对我出错的地方有什么想法或更好的解决方案?

2 个答案:

答案 0 :(得分:0)

有两个问题:

(1)以下一行

strCoIDShrt = Left(CompanyIDFull, InStr(strCoIDFull, " ") - 1)

可能需要更改为

strCoIDShrt = Left(strCoIDFull, InStr(strCoIDFull, " ") - 1)

(2)完成上述操作后,您可能会在所有其他行中获得M22的截断值。那是因为你错过了一个循环。您需要遍历行以截断每行和每个字符串。有关循环的更多信息,您可能需要查看以下链接: http://www.homeandlearn.org/excel_vba_for_loops.html

答案 1 :(得分:0)

你真正需要的是:

Dim LastRow                     As Long
LastRow = Cells(Rows.Count, "M").End(xlUp).Row
Range("M22:M" & LastRow).Replace what:=" *", replacement:="", lookat:=xlPart