Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1996|回复: 4

[已解决]VBA运行以后类型不匹配

[复制链接]
发表于 2017-5-17 12:04 | 显示全部楼层 |阅读模式
各位VBA大神们,遇到一个问题请您们帮忙解决一下,希望用VBA实现公式“IFERROR(LEFT(B2,FIND(".",B2,1)-1),"没有名字")”的功能我在VBA里面公式表达成ActiveWorkbook.Sheets("campaigns").Range("b" & x) = Application.IfError(Left(Worksheets("campaigns").Range("a" & x), Application.Find(".", Worksheets("campaigns").Range("a" & x), 1) - 1), "没有名字"),(A列的行数不确定),运行完以后出现类型不匹配,求各位大神帮帮忙,非常感谢。
最佳答案
2017-5-17 12:50
  1. Sub aaa()
  2. For i = 2 To [a65536].End(3).Row
  3.   n = InStr(Cells(i, 1), ".")
  4.   If n = 0 Then Cells(i, 3) = "没有名字" Else Cells(i, 3) = Left(Cells(i, 1), n - 1)
  5. Next i
  6. End Sub
复制代码

附件.rar

14.48 KB, 下载次数: 1

发表于 2017-5-17 12:50 | 显示全部楼层    本楼为最佳答案   
  1. Sub aaa()
  2. For i = 2 To [a65536].End(3).Row
  3.   n = InStr(Cells(i, 1), ".")
  4.   If n = 0 Then Cells(i, 3) = "没有名字" Else Cells(i, 3) = Left(Cells(i, 1), n - 1)
  5. Next i
  6. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-5-17 13:38 | 显示全部楼层

谢谢大灰狼1976的帮助,运行以后没有问题,请问instr是什么意思,我之前的运行出错,哪里出问题了
回复

使用道具 举报

发表于 2017-5-17 16:11 | 显示全部楼层
instr()函数主要是判断一个字符串在另一个字符串中第一次出现的位置,没有出现的话值等于0,你可以参考帮助文件。
至于你的代码,虽然想用VBA实现,但使用的函数基本上还是工作表函数,所以我也没细看,因为对工作表函数不熟悉,请谅解,一般出问题都是由于变量和字符串没有组合好。
回复

使用道具 举报

 楼主| 发表于 2017-5-17 16:26 | 显示全部楼层
大灰狼1976 发表于 2017-5-17 16:11
instr()函数主要是判断一个字符串在另一个字符串中第一次出现的位置,没有出现的话值等于0,你可以参考帮助 ...

谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 00:55 , Processed in 0.252607 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表