永发信息网

vba代码的问题8?

答案:2  悬赏:50  手机版
解决时间 2021-05-20 21:55

Sub 提取当月数据()
Dim name As String
name = Range("a3") & "月"


If MsgBox("确认要提取 " & Range("a3") & " 当前月份数据吗?", vbInformation Or vbOKCancel) = vbOK Then

Sheets("主表").Visible = True
Sheets("主表").Select
Range("A8:R1800").Select
Selection.Copy
Sheets(name).Visible = True
Sheets(name).Select
Range("A8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.ScreenUpdating = False
Dim i As Integer
For i = 8 To 1800
If Cells(i, 9) = "" And Cells(i, 11) = "" And Cells(i, 13) = "" And Cells(i, 15) = "" And Cells(i, 17) = 0 Then Rows(i).Hidden = True


Next i
Application.ScreenUpdating = True


End If


End Sub
这段代码中我感觉少了一个END IF可我添加上后,会显示错误提示,这样反而对。为什么呢,请高手帮忙说一下为什么,谢谢!!!

最佳答案
呵呵,你中间加了我给你的代码。

第一,请将Application.ScreenUpdating = False放到sub后的第一句,这样你前面的取消隐藏表格和选择表格也“幕后”操作了。

第二,我给你的IF语句已经是完整的了,不需要再加End IF了。下面标准的才需要End IF

IF 判断语句 Then

xxx

Else

xxx

End IF



我写代码属于野路子,语句越简单越好。
全部回答

你的代码中有两个IF

其中的一个是If MsgBox......中的,它与最后面的一个END IF对应

另一个是If Cells(i, 9) ......中的,你可能认为少了一个就是在于此.此处不能加的原因是因为你的THEN后面直接加了Rows(i).Hidden = True的代码,此时就成了IF...... THEN......的语句了

若把Rows(i).Hidden = True放于下面的一行中,即其前面的THEN后面进行换行了,就要加上END IF了

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
金龙鱼油哪里生产的
关于苏打粉去黑头
怎样才能止吐
银行怎么考,银行下班 公款存不上了怎么办
我的诺基亚X3挂起QQ后,不能进入腾讯网,还有
头发烫伤了怎么办
如果在网上被游戏的网友骗巨款,该找谁追缴?
波克城市游戏官网
合肥离天津有多远,天津距安徽合肥有多远?
热血江湖装备怎么分解,热血江湖分解石怎么得
毕节同志集中点
汕头网吧未成年人现在能进了么?
清关费用包括哪些,进口清关费用大概多少钱
若能忠贞不渝相守,定陪你不离不弃终老.这句话
西北大学和北京工商大学会计学研究生那个好?
推荐资讯
给个魔界骑士3中文字幕把··
早上起来眼睛肿了这么消
高足什么意思,'高足’这个词语是什么意思
首先是什么意思,厉害了我的哥是什么意思 厉害
歇后语 马尾穿豆腐( )
多功能一体机如何传真,Canon多功能传真一体机
如何清除手机桌面图标,怎样删除手机桌面上的
math..数学1.一个多边形的内角和与它的一个外
假日数学的评语四年级,亲们我儿子上四年级了
旺旺手机怎么上传视频,苹果手机怎么把视频通
建筑节能材料有哪些,建筑节能质量验收包括哪
I feel so nice,just feeling
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?