【问题标题】:How to return a word from between nth comma and n+1 th comma?如何在第 n 个逗号和第 n+1 个逗号之间获取一个单词
【发布时间】:2021-10-11 19:34:06
【问题描述】:

Excel 2019

我在从以逗号分隔的文本中提取单词时遇到问题。我更喜欢使用 VBA 代码。我找不到编写真实代码的示例代码。如果可以找到类似的代码,我可以操作代码但堆叠。

这是来自用户的数据之一。我想从数据中提取“梅西”。我知道我可以使用“文本到列”功能,但我们的数据是动态的,每当我导出它时,我必须一次又一次地这样做。

117573,117573,219,219,75,75,梅西,巴塞罗那,53780217,forward,froquen@gmail.com

我尝试了“MID,FIND”文本公式,但在接下来的更新中,逗号的数量会改变。这就是为什么,我正在寻找一个 VBA 代码:

Function_name(A2;6;7) => 返回“梅西”

6= 逗号开始

7= 单词后的逗号

最好的问候,

【问题讨论】:

  • 你有什么版本,如果晚于 2013 并且在 PC 上,那么你可以使用 FILTERXML:stackoverflow.com/questions/61837696/…
  • 您可以使用 Split(cellValue,",") 获取从零开始的值数组,您可以使用 arr(5) 从中选择(例如)第 6 个值(第一个值是 arr(0)
  • 非常感谢,根据指导问题找到我正在寻找的解决方案。
  • @TimWilliams 非常感谢,根据您的提示,我找到了正确的搜索。变成数组真是太棒了:)

标签: excel vba text extract comma


【解决方案1】:

感谢@TimWilliams 和@ScottCraner 的提示;

https://trumpexcel.com/vba-split-function/找到代码

Function ReturnNthElement(CellRef As Range, ElementNumber As Integer)
Dim Result() As String
Result = Split(CellRef, ",")
ReturnNthElement = Result(ElementNumber - 1)
End Function


如果有人需要,希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多