0

我有一个电子表格,其中有一列“M”列,其中包含如下字母数值的行:103.14 Jose Dolorez Chavez。我不确定是否有代码可以遍历每一行单元格,剪切数值并将它们粘贴到相邻的列中。所以最后,我会有: 一栏:103.14 另一栏:何塞·多洛雷斯·查韦斯

有人可以帮助我。我不知道从哪里开始。代码需要遍历列“M”中的所有 500 行,查找/剪切值,并将它们粘贴到列“N”中。

任何建议将不胜感激,并在此先感谢您。

4

2 回答 2

4

不,模式始终保持不变:数字,后跟员工姓名。– 朵拉 13 分钟前

为此,您不需要 VBA。您可以通过 Text To Columns 轻松实现此目的。

突出显示 M 列并单击数据 | 文本到列 | 分隔的

选择空格作为分隔符,然后单击完成,您就完成了。在此处查看快照

上传屏幕截图,wikisend.com好像今天 imgur 已经关闭了。

于 2012-08-10T15:19:57.750 回答
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

于 2012-08-10T15:06:33.047 回答