我有一个包含一列的电子表格,列“M”,其中的行包含字母数字值,如下所示:103.14 Jose Dolorez Chavez。我不确定是否有代码可以遍历每行单元格,剪切数值并将它们粘贴到相邻的列中。所以最后,我会: 一栏:103.14另一栏:Jose Dolores Chavez
有人可以帮助我吗?我不知道从哪里开始。代码需要循环遍历“M”列中的所有500行,查找/剪切值,并将它们粘贴到“N”列中。
非常感谢任何建议,并提前感谢您。
答案 0 :(得分:4)
不,整个模式保持不变:Number,后跟Employee名称。 - 多拉13分钟前
您不需要VBA。您可以通过Text To Columns轻松实现此目的。
突出显示列M并单击“数据”|文字到列|分隔
选择空格作为分隔符,然后单击“完成”即可完成。请参见快照here
在wikisend.com
中上传屏幕截图,因为它看起来像imgur今天已经失效。
答案 1 :(得分:2)
这是您可以使用的VBA功能。它使用Val函数,它返回字符串开头的数字部分。只需将其放在工作簿中的常规代码模块中即可:
Function GetNumAtBeginOfString(StringWithNum)
GetNumAtBeginOfString = Val(StringWithNum)
End Function
然后在O列中放置此公式(假设您的数据从第2行开始):
=GetNumAtBeginOfString(M2)
如果第N列放了这个公式:
=TRIM(SUBSTITUTE(M2,O2,""))
...并复制下来。
这将为您留下原始字符串和两个新列。如果您愿意,可以复制并粘贴原始文件。
编辑:您可以在O列中使用此Excel公式,而不是VBA函数:
=MAX(IF(ISNUMBER(LEFT(M2,ROW($A$1:$A$100))*1),(LEFT(M2,ROW($A$1:$A$100))*1),0))
这是一个数组公式,必须使用Ctrl-Shft-Enter