Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 用于退出数据清理的Excel宏_Vba_Excel_Excel 2010 - Fatal编程技术网

Vba 用于退出数据清理的Excel宏

Vba 用于退出数据清理的Excel宏,vba,excel,excel-2010,Vba,Excel,Excel 2010,我想知道是否有人可以帮助我提出关于如何清理Excel电子表格中数据的建议 我有一张很长的单子要看。目前,我正在将一系列数据(以获取感兴趣药物的名称)复制到Excel中。但问题是,每行数据都有我不需要的无关信息 例如: Fluoride Updated 7/10/13 Acetaminophen Updated 8/10/13 我想创建一个宏,只保留第一个文本(在上面的例子中是氟化物和醋氨酚),并删除其余的文本 有什么建议吗?到目前为止,我已经尝试了“查找”和“全部替换”的方法,但当然,由于每种

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

我有一张很长的单子要看。目前,我正在将一系列数据(以获取感兴趣药物的名称)复制到Excel中。但问题是,每行数据都有我不需要的无关信息

例如:

Fluoride Updated 7/10/13
Acetaminophen Updated 8/10/13
我想创建一个宏,只保留第一个文本(在上面的例子中是氟化物和醋氨酚),并删除其余的文本

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

任何帮助都将不胜感激


谢谢

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

这假设数据位于表1的第一列

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

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

这假设数据位于表1的第一列

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

由于您在使用宏方面似乎至少有一点灵活性,所以可以使用公式来为“角点情况”保留更大的灵活性。例如:

=LEFT(A1,FIND(" ",A1))  
如果(不太可能?)所有药物名称都不包含空格,或者可能更具前景:

=LEFT(A1,FIND("Updated",A1)-2)  
其中所有条目均包含“已更新”


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

因为您在使用宏时似乎至少有一点灵活性,所以可以使用公式来为“角落案例”保留更大的灵活性。例如:

=LEFT(A1,FIND(" ",A1))  
如果(不太可能?)所有药物名称都不包含空格,或者可能更具前景:

=LEFT(A1,FIND("Updated",A1)-2)  
其中所有条目均包含“已更新”


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

如果药物名称没有空格,则可以使用
Split(drugName,”
,并仅保留结果数组的第一个元素。如果药物名称没有空格,则可以使用
Split(drugName,”)
并仅保留结果数组的第一个元素。感谢您的回复!谢谢你的回复!