Excel宏用于退出数据清理

时间:2013-08-27 15:43:23

标签: excel vba excel-vba excel-2010

我想知道是否有人可以帮我提供有关如何清理Excel电子表格中数据的建议。

我有一个很长的清单,我需要经历。目前,我正在复制一份数据列表(以获取一堆感兴趣的药物的名称)到Excel中。但问题是,每行数据都有我不需要的无关信息。

例如:

Fluoride Updated 7/10/13
Acetaminophen Updated 8/10/13

我想创建一个只保留第一个文本的宏(在上面的例子中是氟化物和对乙酰氨基酚)并删除其余部分。

有什么建议吗?到目前为止,我已尝试过“查找”和“全部替换”方法,但当然因为每种药物的日期不同,这种方法并不可行。

任何帮助都将不胜感激!

谢谢!

2 个答案:

答案 0 :(得分:1)

由于您似乎至少对使用宏有一点灵活性,因此可以使用公式来为“极端情况”保留更多灵活性。例如:

=LEFT(A1,FIND(" ",A1))  

在这种情况下(不太可能?)所有药物名称都不包含空格,或者更有希望:

=LEFT(A1,FIND("Updated",A1)-2)  

其中所有条目都包含“已更新”。

对结果进行排序应指出解析不适合的位置,并允许进一步调整以适应。

答案 1 :(得分:0)

最简单的方法是创建一个宏,该文本以空格作为分隔符

的列进行文本处理

这假设数据位于Sheet1的第一列

Dim shtWorking As Worksheet
Set shtWorking = Worksheets("Sheet1")
shtWorking.Columns(1).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlNone, ConsecutiveDelimiter:=True, Tab:=False, Semicolon _
    :=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array( _
    Array(1, 2), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True