我有一个电子表格,其中有一列“M”列,其中包含如下字母数值的行:103.14 Jose Dolorez Chavez。我不确定是否有代码可以遍历每一行单元格,剪切数值并将它们粘贴到相邻的列中。所以最后,我会有: 一栏:103.14 另一栏:何塞·多洛雷斯·查韦斯
有人可以帮助我。我不知道从哪里开始。代码需要遍历列“M”中的所有 500 行,查找/剪切值,并将它们粘贴到列“N”中。
任何建议将不胜感激,并在此先感谢您。
不,模式始终保持不变:数字,后跟员工姓名。– 朵拉 13 分钟前
为此,您不需要 VBA。您可以通过 Text To Columns 轻松实现此目的。
突出显示 M 列并单击数据 | 文本到列 | 分隔的
选择空格作为分隔符,然后单击完成,您就完成了。在此处查看快照
上传屏幕截图,wikisend.com
好像今天 imgur 已经关闭了。
这是您可以使用的 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