【问题标题】:Copy and Insert Cells to Another Workbook将单元格复制并插入到另一个工作簿
【发布时间】:2013-08-19 05:45:15
【问题描述】:

您好,我已经尝试录制宏和从不同论坛获得的代码,但没有任何效果。我想在宏所在的打开工作簿中复制一系列单元格,并将其插入到我通过 Excel.Application 打开的 excel 文件中。这意味着下面的行将被向下移动并且不会被覆盖。然而,发生的事情只是插入了一个空白行,而不是我复制的单元格。这是我当前的代码:

ThisWorkbook.Worksheets("Template").Range("A1:G22").Copy
WORxls.Worksheets("SheetSample").Rows("52:52").Select
WORxls.Application.ActiveWindow.Selection.Insert (xlDown)

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    请检查工作簿是否为只读且工作表是否受保护(Debug.Print 行),然后在行Application.CutCopyMode = False 处放置一个断点(红点)。检查 Debug 行的值,您是否能够手动编辑第 52 行中的数据。您在这个 Sub 中有 On Error Resume Next 吗?把它注释掉,看看你是否有错误出现。

    ThisWorkbook.Worksheets("Template").Range("A1:G22").Copy
    With WORxls.Worksheets("SheetSample")
        Debug.Print "Workbook ReadOnly? " & WORxls.ReadOnly
        Debug.Print "Sheet ProtectContents: " & .ProtectContents
        Debug.Print "Sheet AllowEditRanges: " & .Protection.AllowEditRanges
        Debug.Print "Sheet AllowInsertingRows: " & .Protection.AllowInsertingRows
        .Activate
        .Rows("52:52").Insert Shift:=xlDown
    End With
    Application.CutCopyMode = False
    

    【讨论】:

    • 再解释一下就好了。告诉问题代码有什么问题。
    • 仍然发生同样的事情...... :(
    • 您的程序中是否只有这些行涉及行插入/删除?你能确认ThisWorkbook.Worksheets("Template").Range("A1:G22")顶部没有空行吗?
    • 是的,只有这些行。不,它顶部没有空行。我尝试通过Selection.insert 在同一个工作簿上进行复制,但在不同的工作簿上无效
    • WORxls.ReadOnly = False ProtectContents = False Protection.AllowEditRanges = 错误(这不会返回布尔值) Protection.AllowInsertingRows = False 知道如何解决这个问题吗?我试过 WORxls.Worksheets(ClientTab).Protect AllowInsertingRows: = True 但还是没用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多