Excel精英培训网

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

[已解决]求助VBA语句中有一句出现了error 13的提示

[复制链接]
发表于 2017-2-22 17:32 | 显示全部楼层 |阅读模式
这边有一个VBA语句,之前a=5 to 28,后来拓展了a=5 to 40, 一开始还是可以正常运行的,后来到达第30行的时候出现了ERROR 13的问题,红颜色的字体就是error 13 发生的地方,至今不知道原因。 源文件有点大,主要就是一个用来根据每个星期的销售情况来做整月预测的一个文件。数量级在五位数到六位数。  求大神帮忙看一下是什么原因!
For c = 2 To b
    For k = 1 To 16
    If Sheets(k).Cells(a, c) > 0 Then Sheets(k).Cells(a, c + 7) = Sheets(k).Cells(a, 7) / Sheets(k).Cells(a, c) - 1
    If Sheets(k).Cells(a, c) = 0 Then Sheets(k).Cells(a, c + 7) = "no value"
    Next k
   
    If Sheets(2).Cells(a, c + 14) > 0 Then Sheets(2).Cells(a, c + 21) = (Sheets(2).Cells(a, 21) / Sheets(2).Cells(a, c + 14)) - 1
    If Sheets(2).Cells(a, c + 14) = 0 Then Sheets(2).Cells(a, c + 21) = "no value"
    If Sheets(2).Cells(a, c + 28) > 0 Then Sheets(2).Cells(a, c + 35) = (Sheets(2).Cells(a, 35) / Sheets(2).Cells(a, c + 28)) - 1
    If Sheets(2).Cells(a, c + 28) = 0 Then Sheets(2).Cells(a, c + 35) = "no value"
    If Sheets(2).Cells(a, c + 42) > 0 Then Sheets(2).Cells(a, c + 49) = (Sheets(2).Cells(a, 49) / Sheets(2).Cells(a, c + 42)) - 1
    If Sheets(2).Cells(a, c + 42) = 0 Then Sheets(2).Cells(a, c + 49) = "no value"
    If Sheets(10).Cells(a, c + 14) > 0 Then Sheets(10).Cells(a, c + 21) = (Sheets(10).Cells(a, 21) / Sheets(10).Cells(a, c + 14)) - 1
    If Sheets(10).Cells(a, c + 14) = 0 Then Sheets(10).Cells(a, c + 21) = "no value"
    If Sheets(10).Cells(a, c + 28) > 0 Then Sheets(10).Cells(a, c + 35) = (Sheets(10).Cells(a, 35) / Sheets(10).Cells(a, c + 28)) - 1
    If Sheets(10).Cells(a, c + 28) = 0 Then Sheets(10).Cells(a, c + 35) = "no value"
    If Sheets(10).Cells(a, c + 42) > 0 Then Sheets(10).Cells(a, c + 49) = (Sheets(10).Cells(a, 49) / Sheets(10).Cells(a, c + 42)) - 1
    If Sheets(10).Cells(a, c + 42) = 0 Then Sheets(10).Cells(a, c + 49) = "no value"
   Next c
最佳答案
2017-2-22 19:42
cp3385380 发表于 2017-2-22 18:01
源文件的附件在这里
  1. If Val(Sheets(k).Cells(a, c)) > 0 Then Sheets(k).Cells(a, c + 7) = Sheets(k).Cells(a, 7).Value / Sheets(k).Cells(a, c) - 1
复制代码
第54行代码这样改一下

Desktop.zip

39.89 KB, 下载次数: 3

源文件截图和VBA

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2017-2-22 17:39 | 显示全部楼层
没人吗,求大神帮帮忙,我是vba小白。。。
回复

使用道具 举报

发表于 2017-2-22 17:45 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2017-2-22 18:01 | 显示全部楼层
源文件的附件在这里

lalal.zip

470.61 KB, 下载次数: 4

源文件

回复

使用道具 举报

 楼主| 发表于 2017-2-22 18:02 | 显示全部楼层
13052565705 发表于 2017-2-22 17:45
你把excel下载文件发出来吧

附件我发上去啦,你可以看一下
回复

使用道具 举报

发表于 2017-2-22 19:42 | 显示全部楼层    本楼为最佳答案   
cp3385380 发表于 2017-2-22 18:01
源文件的附件在这里
  1. If Val(Sheets(k).Cells(a, c)) > 0 Then Sheets(k).Cells(a, c + 7) = Sheets(k).Cells(a, 7).Value / Sheets(k).Cells(a, c) - 1
复制代码
第54行代码这样改一下
回复

使用道具 举报

发表于 2017-2-22 19:43 | 显示全部楼层
  1. 参考附件
复制代码

lalal.zip

449.46 KB, 下载次数: 3

回复

使用道具 举报

 楼主| 发表于 2017-2-23 09:29 | 显示全部楼层

谢谢啦,这边这个问题解决了,但是我这个文件是用来在月底的准确数字出来之前还会有一个对actual的预测,会显示在Actual那一栏的单元格内,但是现在不知道哪里出问题了,那里一直显示的是0.。。。
回复

使用道具 举报

发表于 2017-2-23 09:38 | 显示全部楼层
cp3385380 发表于 2017-2-23 09:29
谢谢啦,这边这个问题解决了,但是我这个文件是用来在月底的准确数字出来之前还会有一个对actual的预测, ...

不知道你那个预测是什么意思,有的用公式算的有的又是常量数字,看不懂,手动填一个预测数?或者根据什么数据自动预测一个数?
回复

使用道具 举报

 楼主| 发表于 2017-2-23 09:52 | 显示全部楼层
望帝春心 发表于 2017-2-23 09:38
不知道你那个预测是什么意思,有的用公式算的有的又是常量数字,看不懂,手动填一个预测数?或者根据什么 ...

对的,这个表格是根据W1-W5的数据来对actual进行一个预测 (预测的数据会显示在Actual那一栏),然后月底再把预测改成实际数据,最后填下个月的。我附了一个图片,这段代码就是那个预测的式子,您看一下。您打开那个表格,点击update,以前是可以出来一个值的,现在出现的是0,不知道问题在哪里。。。

相关语句

相关语句
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 16:56 , Processed in 0.565993 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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