用vba在EXL表格编写的一段代码,请求ps大神帮忙p图修改怎样可以运行成功。计算时运行时错误13,类型不匹配

EXCEL VBA 运行时错误91_百度知道页面&#x91载开启
页面&#x91载开启 欢&#x8光临本站,页面正在&#x91新载入,请稍候 ...2007以上版本 excel拆分工作表 运行到这个 就错误 ?求大神修改下代码
这步 conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName运行时错误 '3706':未找到提供程序。该程序可能未正确安装全部代码这里
已有帐号?
无法登录?
社交帐号登录共有 613 人关注过本帖
标题:代码运行正确,结果也正确,但在OJ上提交时显示“答案错误”,所以想向各位 ...
来 自:中国
等 级:业余侠客
帖 子:227
专家分:255
结帖率:91.67%
&&已结贴√
&&问题点数:20&&回复次数:8&&&
代码运行正确,结果也正确,但在OJ上提交时显示“答案错误”,所以想向各位大神请教^_^
输入年,月,然后告诉该月有多少天。
输入只有一行,包括2个整数。之间用一个空格分开。
输出只有一行(这意味着末尾有一个回车符号),包括1个整数。
#include&stdio.h&
int main()
&&& long int year,
&&& scanf(&%ld%ld&,&year,&month);
&&& if(month&1||month&12)
&&&&&&&&printf(&月份输入错误,请重新输入:&);
&&&&&&&&scanf(&%ld&,&month);
&&& if((year%4==0&&year%100!=0)||(year%100==0&&year%400==0))
&&&&&&&&switch(month)
&&&&&&&&&&&&case 1:tian=31;
&&&&&&&&&&&&case 2:tian=29;
&&&&&&&&&&&&case 3:tian=31;
&&&&&&&&&&&&case 4:tian=30;
&&&&&&&&&&&&case 5:tian=31;
&&&&&&&&&&&&case 6:tian=30;
&&&&&&&&&&&&case 7:tian=31;
&&&&&&&&&&&&case 8:tian=30;
&&&&&&&&&&&&case 9:tian=31;
&&&&&&&&&&&&case 10:tian=30;
&&&&&&&&&&&&case 11:tian=31;
&&&&&&&&&&&&case 12:tian=30;
&&&&&&&&switch(month)
&&&&&&&&&&&&case 1:tian=31;
&&&&&&&&&&&&case 2:tian=28;
&&&&&&&&&&&&case 3:tian=31;
&&&&&&&&&&&&case 4:tian=30;
&&&&&&&&&&&&case 5:tian=31;
&&&&&&&&&&&&case 6:tian=30;
&&&&&&&&&&&&case 7:tian=31;
&&&&&&&&&&&&case 8:tian=30;
&&&&&&&&&&&&case 9:tian=31;
&&&&&&&&&&&&case 10:tian=30;
&&&&&&&&&&&&case 11:tian=31;
&&&&&&&&&&&&case 12:tian=30;
&&& printf(&%d\n&,tian);
搜索更多相关主题的帖子:
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
年月用int就行了,scanf(&%d%d&,&year,&month); 闰年的判断条件是:能被4整除但不能被100整除,所以你后面的year%100==0&&year%400==0是多余的。还有long int year,这句请分两行写。
程序代码:int main()
&&& int year,month,
&&& scanf(&%d%d&,&year,&month);
&&& if(month!=<font color=#)
&&&&&&&&switch(month) //注意1,3,5,7,8,10,12为31天
&&&&&&&&&&&&case <font color=#:tian=<font color=#;break;
&&&&&&&&&&&&//case 2:tian=28;
&&&&&&&&&&&&case <font color=#:tian=<font color=#;break;
&&&&&&&&&&&&case <font color=#:tian=<font color=#;break;
&&&&&&&&&&&&case <font color=#:tian=<font color=#;break;
&&&&&&&&&&&&case <font color=#:tian=<font color=#;break;
&&&&&&&&&&&&case <font color=#:tian=<font color=#;break;
&&&&&&&&&&&&case <font color=#:tian=<font color=#;break;
&&&&&&&&&&&&case <font color=#:tian=<font color=#;break;
&&&&&&&&&&&&case <font color=#:tian=<font color=#;break;
&&&&&&&&&&&&case <font color=#:tian=<font color=#;break;
&&&&&&&&&&&&case <font color=#:tian=<font color=#;break;
&&&&&&&&if((year%<font color=#==<font color=#)&&(year%<font color=#!=<font color=#))
&&&&&&&&&&&&tian=<font color=#;
&&&&&&&&else
&&&&&&&&&&&&tian=<font color=#;
&&& printf(&%d\n&,tian);
&&& return <font color=#;
[此贴子已经被作者于 17:04编辑过]
&&&唯实惟新 至诚致志
等 级:贵宾
威 望:30
帖 子:743
专家分:3303
楼上的,400整除的还是要加上。楼主主要是把8,9,10,11,12月天数搞错了
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
回复 3楼 grmmylbs
好吧,我不太清楚,如果是那样改成下面那样。
程序代码:&&&&&&&&if((year%<font color=#==<font color=#)&&(year%<font color=#!=<font color=#))
&&&&&&&&&&&&tian=<font color=#;
&&&&&&&&else if((year%<font color=#==<font color=#)&&(year%<font color=#==<font color=#))
&&&&&&&&&&&&tian=<font color=#;
&&&&&&&&else
&&&&&&&&&&&&tian=<font color=#;
[此贴子已经被作者于 17:34编辑过]
&&&唯实惟新 至诚致志
等 级:黑侠
帖 子:107
专家分:534
二月天数一个算式即可,无需那么多if:
28+(!(year%4)&&year%100)||year%400)
等 级:贵宾
威 望:116
帖 子:1521
专家分:8531
如此说来,全年的每月天数也只需要一句代码即可获取,如下是显示2016年的每月天数,经验证正确:
程序代码:#include &stdio.h&
int getday(int y,int m)
&&& return <font color=#+(m&<font color=#)*m%<font color=#+(m&<font color=#)*(!(m%<font color=#))-(m==<font color=#)*(<font color=#-((!(y%<font color=#)&&(y%<font color=#))||!(y%<font color=#)));
int main()
&&& for(i=<font color=#;i&<font color=#;i++)printf(&<font color=#d:%-3d\n&,i,getday(<font color=#6,i));
能编个毛线衣吗?
来 自:中国
等 级:业余侠客
帖 子:227
专家分:255
谢谢大家,你们提出的问题和改进办法非常有用,我已经改进了我的代码,判题系统已经通过了,再次谢谢大家~!
生命不息,AC不止!
等 级:论坛游民
专家分:12
程序代码:
#include &stdio.h&
#define MONTH 12
#define TRUE 1
int getday(int y, int m)
&&& return <font color=# + (m&<font color=#)*m % <font color=# + (m&<font color=#)*(!(m % <font color=#)) - (m == <font color=#)*(<font color=# - ((!(y % <font color=#) && (y % <font color=#)) || !(y % <font color=#)));
void main()
&&& unsigned int year,month,n = <font color=#,day = <font color=#;
&&& while (n != TRUE)
&&&&&&&&scanf(&%ld%ld&, &year, &month);
&&&&&&&&if (month &= MONTH)
&&&&&&&&&&&&n++;
&&&&&&&&&&&&day = getday(year, month);
&&&&&&&&&&&&printf(&%d年%d月有%d日\n &, year,month,day);
&&&&&&&&else
&&&&&&&&&&&&printf(&输入的月份有错误,请重新输入!&);
这样子判断会不会简单一点。。。
来 自:中国
等 级:业余侠客
帖 子:227
专家分:255
回复 8楼 傻瓜都一样
确实感觉简单了一些,谢谢你的分享
生命不息,AC不止!
版权所有,并保留所有权利。
Powered by , Processed in 0.034777 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved查看: 397|回复: 8
代码不能正常执行,出现“运行时错误 9,下标越界”的提示.请高手帮忙修改,谢谢了。
阅读权限20
在线时间 小时
老师们好,不知道是什么原因:1、不点击查询按钮时,在E4:E11,输入格式为如3*9(只能输入含有符号*的数值)时,程序能正常运行。2、当点击点击查询按钮时,再在E4:E11区域中,输入格式为如3*9时,代码不能正常执行,出现“运行时错误 9,下标越界”的提示。然后中,进入代码调试,返回表2,先选中E4:E11,再按下“delete”键(只有按该键才能起作用)。删除选中的内容,再运行该代码,在E4:E11中输入又正常了。请老师帮忙看看我的宏“分班”代码,到底哪里错了,并帮我修改完善,谢谢了!(详见附件)。
(16.12 KB, 下载次数: 0)
21:37 上传
21:37 上传
点击文件名下载附件
50.07 KB, 下载次数: 8
阅读权限50
在线时间 小时
本帖最后由 清风竹- 于
22:41 编辑
Sub 分班()
Application.EnableEvents = True
Dim k As Integer, LastR As Integer
Dim arr, brr, i&
arr = Range(&E4&, &f& & [e65536].End(3).Row)
For i = 1 To UBound(arr)
& &If arr(i, 1) = && Then Exit For '++++++++++++
& &arr(i, 1) = Split(arr(i, 1), &*&)(0) & &年级&
& &Next
[x4].Resize(UBound(arr), 1) = arr
brr = Range(&E4&, &f& & [e65536].End(3).Row)
For i = 1 To UBound(brr)
& &&&If brr(i, 1) = && Then Exit For '++++++++++++
& &&&brr(i, 1) = VBA.StrReverse(Split(VBA.StrReverse(brr(i, 1)), &*&)(0)) & &班&
Next
[y4].Resize(UBound(brr), 1) = brr
& &For k = 4 To 11
& && & If InStr(Range(&e& & k), &年级&) = 0 Then
& && & Cells(k, &E&).Formula = &=x& & k & &&y& & k
& &&&If Cells(k, &E&) = && Then Cells(k, &E&).ClearContents
& &End If
& &Next
& &For i = 4 To 11
& &ss
& &If InStr(Range(&e& & i), &年级&) && 0 Then Cells(i, &x&).ClearContents
& &If InStr(Range(&e& & i), &年级&) && 0 Then Cells(i, &y&).ClearContents
& & Next
End Sub复制代码
22:41 上传
点击文件名下载附件
58.23 KB, 下载次数: 10
阅读权限20
在线时间 小时
谢谢了,真的不愧是高手。另外,有个问题能再帮帮我吗?就是该代码的一部份For k = 4 To 11
& && & If InStr(Range(&e& & k), &年级&) = 0 Then
& && & Cells(k, &E&).Formula = &=x& & k & &&y& & k
& &&&If Cells(k, &E&) = && Then Cells(k, &E&).ClearContents
& &End If,红色部分是公式的,有时也不好处理 ,能不能修改下,不要公式,直接用FOR 等语句编写,谢谢了
阅读权限50
在线时间 小时
本帖最后由 清风竹- 于
08:01 编辑
谢谢了,真的不愧是高手。另外,有个问题能再帮帮我吗?就是该代码的一部份For k = 4 To 11
& && & If I ...Sub 分班()
Application.EnableEvents = True
Dim arr, i&
arr = Range(&E4:f& & [e65536].End(3).Row)
ReDim crr(1 To UBound(arr), 1 To 1)
For i = 1 To UBound(arr)
& &If InStr(arr(i, 1), &年级&) = 0 And arr(i, 1) && && Then
& &&&crr(i, 1) = Split(arr(i, 1), &*&)(0) & &年级& & Split(arr(i, 1), &*&)(1) & &班&
& &Else
& && &crr(i, 1) = arr(i, 1)
& &End If
Next
[e4].Resize(UBound(arr), 1) = crr
End Sub复制代码
用这段代码试试。
阅读权限20
在线时间 小时
谢谢了,不错,很好。
阅读权限20
在线时间 小时
用这段代码试试。
老师您好,能不能再帮帮忙设计一段代码:1、点击“A1”按钮,会弹出一个输入窗口,在该窗口输入G列的不同内容时(如输入6*9),2、会根据6*9所对应的相关内容自动将日期(B4)品名1、数量1、品名2、数量2、品名3、数量3、品名4、数量4对应的内容GM100\12\GM30\13\GM140\14GM33\15依次填列到“表1”的F13\D6\G6\D7\G7\D8\G8\D9\G9中,以此类推。3、根据“表1 ”中的D6-D13有数据的行数,将“6*9”也填列到“表1 ”的备注栏“J6:J13”中去。效果如表1 所示。详见附件。急等(后天领导就要用到了),谢谢了。
20:57 上传
点击文件名下载附件
25.38 KB, 下载次数: 1
阅读权限50
在线时间 小时
& & & & & & & &
老师您好,能不能再帮帮忙设计一段代码:1、点击“A1”按钮,会弹出一个输入窗口,在该窗口输入G列的不同 ...
请测试一下,不适合的地方,指出来,再改。
22:53 上传
点击文件名下载附件
32.39 KB, 下载次数: 4
阅读权限20
在线时间 小时
请测试一下,不适合的地方,指出来,再改。
可以了,非常谢谢!如有其他问题再找您帮忙,可以吗?
阅读权限20
在线时间 小时
用这段代码试试。
请老师再帮忙看看,我的表格在红色区域点击任何一个单元格都会弹出一个窗口,以供输入。但只要用“DELETE”键在表中任何地方删除内容后,该表就会出现问题:1、不能在单元格输入任何内容,鼠标也失效。2、点击红色区域时,虽会弹出窗口,但不会有内容输出到单元格中。具体那里出现问题,是代码还是表格有问题,请您帮忙看看,非常谢谢了。急等!
22:22 上传
点击文件名下载附件
172.62 KB, 下载次数: 1
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师

我要回帖

更多关于 exl vba vlookup 的文章

 

随机推荐