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