VBA:Substitute() 适用于字符串但不适用于单元格内容

VBA: Substitute() works on string but not on Cell contents

我有一个包含字符串 "Tom, Adam, Ben, Sarah" 的单元格。 我正在尝试将这些项目中的每一个放入一个数组中。 Split() 函数似乎无法使用“,”作为分隔符;只有 ","

因此,我试图在使用 Split() 之前从 string/cell 中删除空格。在这种情况下,我使用的是 Substitute() 函数,因为 Replace() 似乎不起作用。

workingCell = "Tom, Adam, Ben, Sarah"
workingCell1 = Range("C4") 'contains: Tom, Adam, Ben, Sarah

workingCell = WorksheetFunction.Substitute(workingCell, " ", "")   'removes all spaces
workingCell1 = WorksheetFunction.Substitute(workingCell1, " ", "") 'retains all spaces

splitArr = VBA.Split(workingCell1, ",")

For Each element In splitArr
    Debug.Print (element)
Next

似乎 Range("C4") 没有被当作一个值,也没有被当作一个字符串。使用 Range("C4").Value 也不起作用。

您不需要删除 space。只需将它们作为分隔符的一部分包含在 Split 函数中。

workingCell1 = Range("C4") 'contains: Tom, Adam, Ben, Sarah
splitArr = VBA.Split(workingCell1, ", ")

For Each element In splitArr
    Debug.Print (element)
Next

请注意此行分隔符参数中逗号后的 space:

splitArr = VBA.Split(workingCell1, ", ")