我有一个名为“Name”的列,其条目有
在我需要的行条目的前面。所以例如
“名称: {white space} ABC零售商”代替“ABC零售商”
或
“ame: {white space} XYZ供应商”代替“XYZ供应商”
我只想从这些行条目中删除“Name:”和“ame:”,然后还要删除左侧的空白。
我到底该怎么做?
我尝试使用Replace
,从这样开始:
Sub fix_names()
'declare variables
Dim arr() As Variant
arr = Range("B2:B3781")
'count rows
noRows = Range("B2:b3781").Rows.Count
'begin clean up operation
For i = 1 To noRows
arr(i) = (Replace(arr(i), "Name:", ""))
Next i
End Sub
但无济于事。我究竟做错了什么?我该如何解决这个问题?
答案 0 :(得分:1)
根据我的评论,一个简单的公式将会这样做:
=TRIM(MID(B2,SEARCH(":",B2) +1, LEN(B2)))
如果你想在vba中使用它,那么:
Sub fix_names()
'declare variables
Dim i as long
Dim arr() As Variant
arr = Range("B2:B3781")
'begin clean up operation
For i = LBound(arr, 1) To UBound(arr, 1)
arr(i, 1) = Trim(Mid(arr(i, 1), WorksheetFunction.IfError(Application.Find(":", arr(i, 1)), 1) + 1))
Next i
Range("B2:B3781").Value = arr
End Sub
问题在于,即使您只使用一列加载数组,它仍然是一个二维数组,必须这样处理。