如何 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

尽管将变量命名为 objectsobject,但它们是一个简单字符串数组。一个简单的字符串,在 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

并且您应该考虑更改变量的名称...