在单元格中查找并复制某些值

时间:2014-08-20 22:53:17

标签: excel vba excel-vba

我有一个文件名格式如下的列: somenumber_sometext_1_100_AA 这些文件名在A列中。我需要扫描每个单元格中的每个文件名并复制数字1并将其粘贴到B列并复制数字100并将其粘贴到C列中,所有行都与文件名相同。然后我想在A列中重复下一个单元格。 帮助将不胜感激!

3 个答案:

答案 0 :(得分:1)

使用:

3141543_junktext_4563_10098_ZZ

单元格 A1 B1 输入:

=TRIM(MID(SUBSTITUTE($A1,"_",REPT(" ",999)),COLUMNS($A:C)*999-998,999))

并在 C1 中输入:

=TRIM(MID(SUBSTITUTE($A1,"_",REPT(" ",999)),COLUMNS($A:D)*999-998,999))

显示 4563 10098

答案 1 :(得分:1)

如果每个部分都是分隔的(即在示例中为_),则将文本转换为列作为分隔符,然后删除最后一列和前两列可能很方便。

(但首先复制到新列,否则您将丢失源数据。)

答案 2 :(得分:1)

由于这是用VBA标记的,我将提供一个简单的vba宏解决方案。

最简单的方法是定义一个名为splitText(test,delim,n)的VBA函数,该函数将使用分隔符拆分文本,并获取第n列。这是非常常见的,我希望他们能够使它成为标准。

Function splitText(txt As String, delim As String, n As Integer)
    splitText = split(txt, delim)(n)
End Function

然后,如果字符串是A1,则将其放在B1:

=splitText(A1,"_",2)

这在C1:

=splitText(A1,"_",3)