excel求大神帮忙破解qq空间解答,为什么这段宏代码运行会报400的错误?

为什么下面代码提示错误400.请指教
阅读权限95
在线时间 小时
wyzdddl 发表于
还有个问题,请问赵版主。可以在离开“流水帐”工作表,就自动隐藏这个工作表吗(选择该工作簿其它工作表 ...
Deactivate 事件:
图表、工作表或工作簿从活动状态转为非活动状态时产生此事件。Private Sub Worksheet_Deactivate()
& & Me.Visible = xlSheetHidden
End Sub
复制代码
阅读权限30
在线时间 小时
zhaogang1960 发表于
Deactivate 事件:
图表、工作表或工作簿从活动状态转为非活动状态时产生此事件。
谢谢您,赵版主。也可以复制到Thisworkbook吗,没感试,怕隐藏了工作簿,找不到
使用一般性隐藏,可以在手工取消&
阅读权限95
在线时间 小时
wyzdddl 发表于
谢谢您,赵版主。也可以复制到Thisworkbook吗,没感试,怕隐藏了工作簿,找不到Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
& & If Sh.Name = &流水帐& Then Sh.Visible = xlSheetHidden
End Sub
复制代码
阅读权限30
在线时间 小时
& & & & & & & &
zhaogang1960 发表于
多谢赵版主的指教。非常感谢。
晚安,赵版主
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师查看: 6848|回复: 6
[已解决]400错误如何解决?
ActiveWorkbook.SaveCopyAs &E:\信用表\隆华村\& & Sheets(&输入&).Range(&B1&) & &.xls&Sheets(&生产经营情况&).Range(&E21:E26&).SelectSelection.ClearContents
运行到第二行的时候,出现400错误,不知如何解决,谢谢!
happym8888发布于
另外,工作簿中没有“农业概况”,估计是笔误。
来个附件更好!!这样看的话,,,比较难
无聊的疯子 发表于
来个附件更好!!这样看的话,,,比较难
上传附件,初学都算不上,各位老师见笑了。
20:37 上传
点击文件名下载附件
70.37 KB, 下载次数: 13
本帖最后由 happym8888 于
21:11 编辑
ActiveWorkbook.SaveCopyAs &E:\信用表\隆华村\& & Sheets(&输入&).Range(&B1&) & &.xls&
Sheets(&生产经营情况&).Range(&E21:E26&).ClearContents
Sheets(&生产经营情况&).Range(&j21:j26&).ClearContents
Sheets(&生产经营情况&).Range(&h11:h17&).ClearContents
Sheets(&生产经营情况&).Range(&a3:j6&).ClearContents
Sheets(&农业概况&).Range(&c6&).ClearContents
Sheets(&农业概况&).Range(&g6&).ClearContents
Sheets(&农业概况&).Range(&l6&).ClearContents
Sheets(&农业概况&).Range(&r9&).ClearContents
Sheets(&农业概况&).Range(&u9&).ClearContents
Sheets(&农业概况&).Range(&a18:s27&).ClearContents
Sheets(&农业概况&).Range(&d33:j35&).ClearContents
Sheets(&农业概况&).Range(&o33:t35&).ClearContents
复制代码要保证E盘上“E:\信用表\隆华村\”这个文件夹。另外,在所需要删除内容的区域直接ClearContents就可以了。
yshyw163 发表于
上传附件,初学都算不上,各位老师见笑了。
E:\信用表\隆华村
这个目录不存在导到的,建立好该目录后正常
Sheets(&生产经营情况&).Range(&E21:E26&).Select
Selection.ClearContents
由于没有激活对应的 生产经营情况 表,这里会报错误
代码修改成
Sheets(&生产经营情况&).Range(&E21:E26&).ClearContents&&
其实可以这样
Sheets(&生产经营情况&).Range(&E21:E26,j21:j26,h11:h17,a3:j6&).ClearContents&&
其它代码自己对照优化吧~~
&&&本楼为最佳答案&&&
另外,工作簿中没有“农业概况”,估计是笔误。
happym8888 发表于
另外,工作簿中没有“农业概况”,估计是笔误。
是的,谢谢,已经OK了!
|||Excel精英培训
Powered by君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
EXCEL 宏代码运行中的“暂停”
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口简谈VBA的错误处理
发表于 11:35|
作者王丽兵
在 Word 、 Excel 乃至其他支持 VBA 的 Office 组件中,在代码中处理错误的方式通常都是使用“ On Error Goto 错误标签”语句,然后在代码的后面添加错误标签及其中包含的错误处理代码。
宋翔,微软全球最有价值专家(MVP),从事多年网络技术服务以及企业信息化管理工作,对Microsoft Office在销售、人力、财务等多方面的应用有比较丰富的经验。主要致力于微软Windows和Office两大系列产品的深入研究与开发,出版过多部Windows和Office方面的书籍。好读书,求甚解,对任何事物喜欢钻研和琢磨。为人谦虚随和,乐于助人,网名&完美&,是多个Windows和Office论坛的版主,并建有自己的个人网站,与读者以及广大电脑爱好者在线交流电脑技术。业余爱好广泛,尤其喜欢不同风格的音乐,擅长唱歌,以欧美流行歌曲为主。
在 Word 、 Excel 乃至其他支持 VBA 的 Office 组件中,在代码中处理错误的方式通常都是使用& On Error Goto 错误标签&语句,然后在代码的后面添加错误标签及其中包含的错误处理代码。下面总结了创建错误处理程序的步骤:
( 1 )在过程中可能导致错误的代码行的前面添加错误处理语句 On Error Goto ErrHandler ,其中的& ErrHandler &为自定义的错误标签名称。
( 2 )在有可能导致错误的代码行后面添加取消错误处理的语句 On Error Goto 0 ,这样当遇到错误时,就不会跳转到指定的错误标签处,而是直接显示错误提示窗口,其中包括【调试】、【结束】等按钮。
( 3 )在宏的末尾(正常程序的末尾)添加代码行 Exit Sub ,这样可以避免程序未发生错误时执行错误处理程序。
( 4 )在代码行 Exit Sub 的下一行添加一个错误标签,该标签由名称和冒号组成,例如& MyErr: &。
( 5 )在错误标签的下一行编写错误处理代码。如果要返回导致错误的代码行后面的代码行,可以使用 Resume Next 语句。
注意:可以在过程的末尾添加多个错误处理程序,但必须确保每个错误处理程序都以 Resume Next 或 Exit Sub 语句结束,这样可以避免从当前错误程序之后继续执行其后的错误处理程序。
举一个简单的例子可能会更直观地反映出上面所说的内容。在下面的代码中,当检测到工作簿中没有指定的工作表时,将出现错误,并执行错误代码,显示一个包含错误号与错误描述的对话框。
Sub 检测工作表是否存在 ()
Dim wksname As String, msg As String
On Error GoTo MyErr
wksName = Worksheets(&sx&).Name
msg = & 错误 & & Err.Number & & : & & Err.Description
MsgBox msg
注意:无论在导致问题的代码行前面使用 On Error Resume Next 语句还是& On Error Goto 标签&语句,要想让程序重新获取其他错误信息,则都必须在导致问题的代码行后面使用 On Error Goto 0 语句恢复正常的错误捕获状态。否则当前的错误处理程序将对后面的所有错误都起作用。例如,下面的代码由于没有使用 On Error Goto 0 语句,因此,在后面遇到错误时(两次 x/y ),都会转到标签 MyErr 处执行错误处理程序。
Sub ErrTest()
Dim x As Integer, y As Integer, z As Single
On Error GoTo MyErr
MsgBox x / y
MsgBox x / y
MsgBox & 继续执行错误代码行的下一行代码 &
MsgBox & 第 1 次:除数不能为 0&
Resume Next
而下面的代码由于及时使用了 On Error Goto 0 语句,因此,在第 2 次错误发生时(即第 2 个 x/y ),系统将显示内置错误消息,而不是运行 MyErr 标签处的代码。
Sub ErrTest()
Dim x As Integer, y As Integer, z As Single
On Error GoTo MyErr
MsgBox x / y
On Error GoTo 0
MsgBox x / y
MsgBox & 继续执行错误代码行的下一行代码 &
MsgBox & 第 1 次:除数不能为 0&
Resume Next
下面的代码虽然未使用 On Error Goto 0 语句,但是在第 2 个错误发生前,添加了第 2 个错误标签,因此,两个错误处理程序分别处理各自的错误。
Sub ErrTest()
Dim x As Integer, y As Integer, z As Single
On Error GoTo MyErr1
MsgBox x / y
On Error GoTo MyErr2
MsgBox x / y
MsgBox & 继续执行错误代码行的下一行代码 &
MsgBox & 第 1 次:除数不能为 0&
Resume Next
MsgBox & 第 2 次:除数不能为 0&
Resume Next
以上 3 段代码在执行完错误处理程序后,都会返回发生错误的代码之后继续执行。对于本例来说,在执行完错误处理程序后,都会继续执行& MsgBox & 继续执行错误代码行的下一行代码 & &代码行。
虽然我们不希望在程序运行时出现错误,但是有些时候我们可以利用错误来提高代码的效率。例如,当用户由于某些原因将工作簿中的某个工作表删除,如果 VBA 程序中中包括操作该工作表的代码,那么当用户运行该程序时,将导致错误发生。此时,可以利用错误来检测要操作的工作表是否存在于工作簿中。代码如下:
Sub 检测工作表是否存在 ()
Dim WksName As String
On Error Resume Next
WksName = Worksheets(&sx&).Name
If Err.Number && 0 Then
MsgBox prompt:=& 此工作簿中未找到工作表 sx&, Title:=& 错误 &
On Error GoTo 0
推荐阅读相关主题:
网友评论有(0)
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章}

我要回帖

更多关于 大神帮忙ps 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信