Excel精英培训网

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

[已解决]请问这个VBA代码为什么运行不了

[复制链接]
发表于 2012-6-29 14:00 | 显示全部楼层 |阅读模式
额,VBA刚刚入门,才学习了一个基础,就得瑟一下,自己写了一个代码,如下所示:

Sub dg()
Dim x As Integer
Dim i As Integer
For x = 2 To 10
For i = 2 To  8
Cells(x, 3) = "=IF(COUNTIF($B$2:$B$100,A" & x & "),""存在"",""不存在"")"
Cells(i, 3) = "=IF(COUNTIF($D$2:$D$102,A" & x & "),""存在"",""不存在"")"
Next
Next
End Sub

我运行的时候,一直持续了很长时间,都没有成功。我不知道哪里错了!
但是,当时使用如下的代码的时候,却是正常的!
Sub dgdd()
Dim x As Integer
For x = 2 To 10
Cells(x, 3) = "=IF(COUNTIF($B$2:$B$100,A" & x & "),""存在"",""不存在"")"
Next x
End Sub
请问我的第一段代码是哪里出现问题了呢?
求高手不吝赐教,感激不尽!

最佳答案
2012-6-29 15:18
重点在于你想干什么。
就你的代码而言,
如果要说正常,只是你的代码不至于报错。
如果要说不正常,你的两个循环套得很怪异,运行过程只是在[C2:C8]直接多次写入,在[C9:C10]则写入一次。对同一区域多次写入公式没有意义,因为最终只会留下最后一次写入结果,前面都是空耗时间。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-6-29 14:03 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-6-29 14:07 | 显示全部楼层
( ⊙ o ⊙ )啊!不会是自己的excel有问题吧,我再去试试看,谢谢啊!
回复

使用道具 举报

发表于 2012-6-29 14:50 | 显示全部楼层
基本没有用代码写公式的
回复

使用道具 举报

发表于 2012-6-29 15:18 | 显示全部楼层    本楼为最佳答案   
重点在于你想干什么。
就你的代码而言,
如果要说正常,只是你的代码不至于报错。
如果要说不正常,你的两个循环套得很怪异,运行过程只是在[C2:C8]直接多次写入,在[C9:C10]则写入一次。对同一区域多次写入公式没有意义,因为最终只会留下最后一次写入结果,前面都是空耗时间。
回复

使用道具 举报

发表于 2012-6-30 18:13 | 显示全部楼层
本帖最后由 iaw528 于 2012-6-30 18:15 编辑

Cells(x, 3)=Evaluate("=IF(COUNTIF($B$2:$B$100, A & x ),""存在"",""不存在"")")
回复

使用道具 举报

 楼主| 发表于 2012-7-2 13:19 | 显示全部楼层
Benol 发表于 2012-6-29 15:18
重点在于你想干什么。
就你的代码而言,
如果要说正常,只是你的代码不至于报错。

我写错了,应该是Cells(i, 5) = "=IF(COUNTIF($D$2:$D$102,A" & x & "),""存在"",""不存在"")"
谢谢您的回复!非常感谢!

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-4 05:06 , Processed in 0.377439 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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