VBA:从一串文本中复制数字并插入下面的单元格

时间:2013-06-19 09:42:26

标签: excel vba excel-vba

我想在Excel中创建一个makro,按下按钮后执行以下操作。我附加了一些格式化为实际工作表的虚拟数据。

enter image description here

有几个数据块由工作表1中的标题分隔。从这些标题中,我想得到一串数字,并将其放入第S列,每行包含该标题下方的数据。在第6行标题中写着“2000”,因此第8-19行在第S列中应该有一个“2000”,依此类推。我想要的数字总是在“Monthlyaccount”之后,但数字的长度可以不同 - 从1到7位。 对于没有给出数据的行(可以通过查看A中是否是给定的有效日期来识别数据行),应该只有“ERR”而不是数字。

任何人都可以帮忙吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

假设字符串(在单元格A1中)包含“Monthlyaccount”,后跟一个空格,后跟一个数字,后跟另一个空格。要提取数字,请使用:

=--LEFT(MID(A1,FIND("Monthlyaccount",A1)+15,9999),-1+FIND(" ",MID(A1,FIND("Monthlyaccount",A1)+15,9999)))

答案 1 :(得分:0)

这是按要求提供的。将以下内容粘贴到S3并向下拖动

=IF(AND(ISNUMBER(RIGHT(A2,4)*1),ISNUMBER(RIGHT(A3,4)*1)),S2,IF(ISNUMBER(RIGHT(A3,4)*1),LEFT(RIGHT(A1,LEN(A1)-FIND("Monthlyaccount",A1)-14),FIND(" ",RIGHT(A1,LEN(A1)-FIND("Monthlyaccount",A1)-14))),"ERR"))