如何 trim 数组中的值 VBA?
How to trim values in an array in VBA?
我遇到了无法解决的问题。我有一个字符串,想在“;”处拆分它(这是有效的)然后 trim 值。
Dim cell As String
Dim objects() As String
cell = Range("X74").Text
objects= Trim(Split(cell, ";"))
我在 Trim 函数上遇到错误。然后我尝试了以下方法:
For Each object In objects
object = Trim(object)
Debug.Print object
Next
这有效,但不会将 trimmed 值保存到我的对象数组中。
我会尽量避免将 vba 名称作为变量:
Sub tst()
Dim yourcell As String, i As Long
Dim yourobjects() As String
yourcell = Range("X74").Text
yourobjects = Split(yourcell, ";")
For i = LBound(yourobjects) To UBound(yourobjects)
yourobjects(i) = Trim(yourobjects(i))
Debug.Print yourobjects(i)
Next i
End Sub
尽管将变量命名为 objects
和 object
,但它们是一个简单字符串数组。一个简单的字符串,在 VBA 中,字符串不是对象。
在你的For Each
循环中,你正在复制一个字符串到变量object
,无论你用它做什么,它都不会' 更改 objects
数组的内容。
如果您确实需要更改 objects
数组的内容,请使用这样的循环:
Dim i As Long
For i = LBound(objects) To UBound(objects)
objects(i) = Trim(objects(i))
Debug.Print objects(i)
Next
并且您应该考虑更改变量的名称...
我遇到了无法解决的问题。我有一个字符串,想在“;”处拆分它(这是有效的)然后 trim 值。
Dim cell As String
Dim objects() As String
cell = Range("X74").Text
objects= Trim(Split(cell, ";"))
我在 Trim 函数上遇到错误。然后我尝试了以下方法:
For Each object In objects
object = Trim(object)
Debug.Print object
Next
这有效,但不会将 trimmed 值保存到我的对象数组中。
我会尽量避免将 vba 名称作为变量:
Sub tst()
Dim yourcell As String, i As Long
Dim yourobjects() As String
yourcell = Range("X74").Text
yourobjects = Split(yourcell, ";")
For i = LBound(yourobjects) To UBound(yourobjects)
yourobjects(i) = Trim(yourobjects(i))
Debug.Print yourobjects(i)
Next i
End Sub
尽管将变量命名为 objects
和 object
,但它们是一个简单字符串数组。一个简单的字符串,在 VBA 中,字符串不是对象。
在你的For Each
循环中,你正在复制一个字符串到变量object
,无论你用它做什么,它都不会' 更改 objects
数组的内容。
如果您确实需要更改 objects
数组的内容,请使用这样的循环:
Dim i As Long
For i = LBound(objects) To UBound(objects)
objects(i) = Trim(objects(i))
Debug.Print objects(i)
Next
并且您应该考虑更改变量的名称...