热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

EntireRow.Delete似乎删除了错误的行

如何解决《EntireRow.Delete似乎删除了错误的行》经验,您有什么比较好的解决方法?

我有以下代码:

Sub test()
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim r As Long
    Dim rng As Range

    Set ws1 = Worksheets("Sheet1")
    Set ws2 = Worksheets("Sheet2")

    'Set some dummy data
    For r = 1 To 20
        ws1.Cells(r, "A").Value = r + 100
        ws2.Cells(r, "A").Value = r + 200
    Next

    'Set a reference to Sheet1!A11
    Set rng = ws1.Range("A11")

    'Copy Sheet1 row 11 to Sheet2 row 5
    rng.EntireRow.Cut ws2.Range("A5")

    'Delete Sheet1 row 11
    rng.EntireRow.Delete

End Sub

我为"Sheet1"的第11行中的单元格分配了引用.使用该引用,我Cut将行放到"Sheet2"上的某个位置,然后我使用该引用从"Sheet1"中删除整行.

我的期望是"Sheet1"的第11行将被删除,在第1行到第10行的第A列101到110中保留值,在第11到19行中保留112到120的值.

发生的事情是第11行被清除(由于Cut),第5行被删除.

代码执行后的图纸图像: 代码运行后的表单图像

删除第5行的事实似乎与第5行是Cut语句"Sheet2"上的目标行有关.如果它删除了"Sheet2"上的第5行,我可以理解发生了什么 - 即引用被重新命名为另一个工作表的一部分Cut- 但它删除了"Sheet1"上的第5行.

任何人都能解释这种奇怪的行为吗?

注意:这个问题的灵感来自我试图写这个答案,我对OP的那个问题的许多评论告诉他们"当然EntireRow.Delete会删除你的行 - 你为什么告诉我它不起作用".


推荐阅读
author-avatar
Sophie-wyq_661
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有