为什么下面这段EXCEL VBA代码在我电脑上可以运行 在别人电脑无法运行

Sub日报表()sj1=Timera=Format(Date-1,"m.d")b=Format(Date-1,"m-d")c=Format(Date-1,"m月d日")D... Sub 日报表()
sj1 = Timer
a = Format(Date - 1, "m.d")
b = Format(Date - 1, "m-d")
c = Format(Date - 1, "m月d日")
Dim rbb As Workbook
Set rbb = Workbooks("2015年8月份日报表.xlsm")
Set kybb = Workbooks(a & "空运报表.xls").Sheets("浦东") ’(一开始这句就错误, 显示下标越界)
rbb.Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = b
p = kybb.Range("h65536").End(xlUp).Row
kybb.Range("c3:c" & p).Copy rbb.Sheets(b).Range("d2")
kybb.Range("a3:a" & p).Copy rbb.Sheets(b).Range("e2")
kybb.Range("f3:f" & p).Copy rbb.Sheets(b).Range("f2")
kybb.Range("h3:h" & p).Copy rbb.Sheets(b).Range("g2")
kybb.Range("i3:i" & p).Copy rbb.Sheets(b).Range("h2")
kybb.Range("k3:k" & p).Copy rbb.Sheets(b).Range("i2")
kybb.Range("l3:l" & p).Copy rbb.Sheets(b).Range("j2")
kybb.Range("m3:m" & p).Copy rbb.Sheets(b).Range("k2")
kybb.Range("d3:d" & p).Copy rbb.Sheets(b).Range("l2")
kybb.Range("e3:e" & p).Copy rbb.Sheets(b).Range("m2")
kybb.Range("n3:n" & p).Copy rbb.Sheets(b).Range("n2")
Range("a2") = "日期"
[b2] = "部门"
[c2] = "委托人"
[e2] = "目的地"
Range("a3:a" & p - 1) = c
Range("b3:b" & p - 1) = "市场"
Range("a1:n1").Merge
Range("a1") = "空运日报表"
END SUB
不要问什么文件名,后缀 有没有打开 什么的 都对的 就是换台电脑就不能执行,是不是和excel版本有关 但是都是2007版本啊 为什么一个能执行 一个不能执行
展开
 我来答
tlxwd
2015-08-04 · TA获得超过1148个赞
知道大有可为答主
回答量:1592
采纳率:66%
帮助的人:707万
展开全部
应该是kybb没有事先申明为worksheet,所以,这行的set语句会出错。
处理意见:
1、在之前先申明变量,加入Dim kybb As Worksheet这一句;
2、也可以将set语句改为with语句试试。
追问
那为什么这段代码我的电脑运行没有任何问题,是不是别人的Excel版本有问题,都是2007,还有一个问题,同事那台电脑宏录制,不管怎么录最后只能录最后一句。什么问题
BAIXINGR

2015-08-04 · TA获得超过3万个赞
知道大有可为答主
回答量:2.9万
采纳率:89%
帮助的人:8875万
展开全部
有可能是没有完全安装的问题,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cfzzj007
2015-08-04 · TA获得超过5365个赞
知道大有可为答主
回答量:7931
采纳率:78%
帮助的人:1563万
展开全部
是否确定,a目录下,有“空运报表”,并且已经打开?
更多追问追答
追问
当然有了,只是换台电脑就代码错误了
追答
一个可能是文件是否存在,并且名称一致。
还有一个可能是你的扩展名的问题,在你的电脑上,2003版的,别人电脑如果另存成了2010版的,也有可能的。比如:rbb、kybb
总的说来,因为原来运行正常,那么问题是代码的可能不大,更大的可能是使用条件发生了变化,带来的问题。

不要再问?那就没办法回答了,你什么都对,就是运行出错,那是神迹,既然确定什么都对了,那还在网上问什么?别人说的,你都检查了么?不相信别人,提问是在玩我们?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dadee7f
2015-08-04 · TA获得超过1869个赞
知道小有建树答主
回答量:867
采纳率:67%
帮助的人:395万
展开全部
检查下那个人的“空运报表.xls”中有没有“浦东”这个sheet,重点关注下“浦东”前后是不是有空格。
更多追问追答
追问
都说了代码在我的电脑运行没有问题,只是在同事电脑不能运行
追答

你在你同事电脑上操作时是不是没事先打开  空运报表???? 

你看下workbooks的定义:


Workbooks 对象    
  Microsoft Excel 应用程序中当前打开的所有 Workbook 对象的集合。

注意“当前打开”这四个字。


如果你想用VBA打开某个文件,可以用workbooks.open(路径+文件名)方法。

注意,如果忽略路径,excel会从“我的文档”里找目标文件,而不是从当前文件夹!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式