Excel精英培训网

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

If 函数的运行逻辑

[复制链接]
发表于 2020-8-26 15:55 | 显示全部楼层 |阅读模式
2学分
各位大神
我在运行下面这段函数的时候,系统提示运行错误“1004”。
然后通过Msgbox 得知问题在于第一次运行时,根据sheet1 的数据得到的i=0.
但是sheet1 已经被我用if函数排除了,为什么VBE还是会计算sheet1 呢?
VBA 初学者,勿笑
Sub HB()
Dim i As Integer, rng As Range, sht As Worksheet
Worksheets("sheet1").Rows("2:100000").Clear
    For Each sht In Worksheets
        If sht.Name <> "sheet1" Then
            Set rng = Worksheets("sheet1").Cells("10000", "A").End(xlUp).Offset(1, 0)
            i = sht.UsedRange.Rows.Count - 1
            MsgBox "i=" & i
            sht.Range("A2").Resize(i, 4).Copy rng
        End If
    Next sht
End Sub





VBA -表数据合并.zip

24.22 KB, 下载次数: 2

最佳答案

查看完整内容

If sht.Name "sheet1" Then 需要改为 If sht.Name "Sheet1" Then Sheet1前面的S是大写的
发表于 2020-8-26 15:55 | 显示全部楼层
If sht.Name <> "sheet1" Then
需要改为
If sht.Name <> "Sheet1" Then
Sheet1前面的S是大写的
回复

使用道具 举报

 楼主| 发表于 2020-8-26 16:38 | 显示全部楼层
mnmb 发表于 2020-8-26 16:27
If sht.Name  "sheet1" Then
需要改为
If sht.Name  "Sheet1" Then

谢谢提醒。还真的从来没注意过这里
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-17 04:13 , Processed in 0.354887 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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