VBA代码可在新工作簿中使用,但不适用于我希望它在其中使用的代码

问题描述 投票:1回答:1

我有一个工作簿,宏不起作用,基本上只是从单元格A3复制并向下复制每个工作表中的值,然后依次将每个粘贴到新的摘要工作表中。

当我从字面上创建新工作簿并将所有工作表复制并粘贴到新工作簿中时,一切正常。但是如果我呆在旧的工作簿中,则会出现错误

选择工作表类的方法失败

在我创建的其他两本工作簿中,它们并没有与我复制的图纸完全相同...为什么这本特定的工作簿没有失败?

我关闭了所有其他工作簿,以避免ActiveWorkBook出错-也许不是最好的处理方式,但这不应对此产生影响。

Option Explicit

Public Sub SelectItemsEstimate()
    Dim ws As Worksheet
    Dim LastRow As Long

    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> "Bussiness Unit Key" _
            And ws.Name <> "dv" And ws.Name <> "cc" And ws.Name <> "wer" And ws.Name <> "dafd" _
            And ws.Name <> "Master Sheet Summary Data" _
            And ws.Name <> "Query for Macro" _
            And ws.Name <> "Query for Macro 2 with Format" _
            And ws.Name <> "Paste all values" _
            And ws.Name <> "Summary" Then

            Worksheets(ws.Name).Select
            Range("A3", Range("A3").SpecialCells(xlCellTypeLastCell)).Select
            Selection.Copy

            With ActiveWorkbook.Worksheets("Summary")
                LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row ' get last row with data in column "A"
                ' paste
                .Range("A" & LastRow + 1).PasteSpecial Paste:=xlPasteValues
            End With
        End If
    Next
End Sub
excel vba
1个回答
0
投票

所以...由于某种原因...如果我使用

Worksheets(ws.Name).Activate代替Worksheets(ws.Name).Select

我的问题解决了。

为什么选择Worksheets(ws.Name)。在其他工作簿中选择工作,但是在此原始工作簿中,我不得不将其更改为Worksheets(ws.Name)。激活它才能正常工作... ????

© www.soinside.com 2019 - 2024. All rights reserved.