我有一列,列“M”,即具有含有像下面的字母数字值的行一个电子表格单元格内:103.14圣何塞Dolorez Chavez的。我不确定是否有代码可以循环遍历每行单元格,剪切数值并将它们粘贴到相邻列中。所以最后,我会: 一列:103.14另一列:何塞多洛雷斯查韦斯搜索数值包含字母和数字值 - VBA的Excel
有人可以帮助我。我不知道从哪里开始。代码需要循环遍历列“M”中的所有500行,查找/剪切值并将它们粘贴到列“N”中。
任何意见,将不胜感激,谢谢你提前。
我有一列,列“M”,即具有含有像下面的字母数字值的行一个电子表格单元格内:103.14圣何塞Dolorez Chavez的。我不确定是否有代码可以循环遍历每行单元格,剪切数值并将它们粘贴到相邻列中。所以最后,我会: 一列:103.14另一列:何塞多洛雷斯查韦斯搜索数值包含字母和数字值 - VBA的Excel
有人可以帮助我。我不知道从哪里开始。代码需要循环遍历列“M”中的所有500行,查找/剪切值并将它们粘贴到列“N”中。
任何意见,将不胜感激,谢谢你提前。
这里是您可以使用VBA函数。它使用Val函数,它返回字符串开头的数字部分。只是把它放在一个普通的代码模块中您的工作簿:
Function GetNumAtBeginOfString(StringWithNum)
GetNumAtBeginOfString = Val(StringWithNum)
End Function
然后在O列把这个公式(assumning你的数据在第2行开始):
=GetNumAtBeginOfString(M2)
如果N列把这个公式:
=TRIM(SUBSTITUTE(M2,O2,""))
...并抄下来。
这使你与原始字符串和两个新列。如果你想要,你可以复制并粘贴原件。
编辑:
=MAX(IF(ISNUMBER(LEFT(M2,ROW($A$1:$A$100))*1),(LEFT(M2,ROW($A$1:$A$100))*1),0))
这是一个数组公式,必须以Ctrl-Shft-Enter
没有,模式仍然是输入:您可以在O列而不是VBA函数使用Excel公式始终如此:数字,后跟员工姓名。 - 朵拉13分钟前
你不需要VBA这个。您可以通过“文本到列”轻松实现此目的。
高亮列M和点击数据|文本到列|分隔
为分隔符选择空间,并单击Finish和你做。查看快照here
上传截图wikisend.com
,因为它看起来像imgur今天下跌。
这当然是要走的路。但没有乐趣:)。 +1一如既往。 – 2012-08-10 15:32:18
非常感谢你Sid !!!!!!! (希望没关系,我缩短了你的名字)你摇滚!我得到了下载的图像,试了一下,它的工作! – Dora 2012-08-10 15:34:32
@Dora:Yup Sid很好。几乎每个人在这里都将我称为Sid :) – 2012-08-10 16:13:44
模式总是像你的例子,即其余的数字?该号码可以在名字后面还是在中间? – 2012-08-10 14:48:41
不,该模式始终保持不变:编号,后跟员工姓名。 – Dora 2012-08-10 14:57:40
我不确定我是否理解悉达思。你什么意思? – Dora 2012-08-10 15:22:17