vba - PasteSpecial(运行时错误 1004)

标签 vba excel for-loop copy-paste

我想将数据(公式)从一本书复制到另一本书,然后也复制到其他书籍及其工作表中。给出一个错误(运行时错误 1004)。
在插入的地方,只插入值(没有公式)。
行错误:Selection.PasteSpecial Paste:=xlPasteAll

    Sub Скопирователь()
    Call Скопирователь1
    Call Скопирователь2
    End Sub


    Sub Скопирователь1()
    Dim book1 As Workbook
    Dim book2 As Workbook
    Dim A As String
    Dim n As Long
    Dim B()
    A = "P34:P99"
    Set book2 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 6\Пишем условие vba\4-ое место\6.xlsm")
    book2.Worksheets("6").Activate
    Range("" + A + "").Copy

    B = Array("7", "8", "16", "17", "21", "22", "23", "25", "26", "29", "30", "31", "54", "55", "56", "57", "58", "59")

    'условия
    For n = 0 To 17

    Set book1 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 6\Пишем условие vba\4-ое место\" & B(n) & ".xlsm")
    book1.Worksheets("" & B(n) & "").Activate
    Range("" + A + "").Select
    Selection.PasteSpecial Paste:=xlPasteAll
    'все листы
    'Листы
    book1.Save
    book1.Close
    Next n

   End Sub

   Sub Скопирователь2()
   Dim book1 As Workbook
   Dim book2 As Workbook
   Dim A As String
   Dim n, t As Long
   Dim B()
   Dim M()
   A = "P34:P99"
   B = Array("6", "7", "8", "16", "17", "21", "22", "23", "25", "26", "29", "30", "31", "54", "55", "56", "57", "58", "59")
   M = Array("Лист1", "Лист2", "Лист3", "Лист4", "Лист5", "Лист6", "Лист7", "Лист8", "Лист9", "Лист10", "Лист11", "Лист12", "Лист13", "Лист14", "Лист15", "Лист16", "Лист17", "Лист18", "Лист19")
   'условия
   For n = 0 To 18

   Set book1 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 6\Пишем условие vba\4-ое место\" & B(n) & ".xlsm")


   book1.Worksheets("" & B(n) & "").Activate
   Range("" + A + "").Copy
   'все листы
   'Листы
    For t = 0 To 18
       book1.Worksheets("" & M(t) & "").Activate
           Range("" + A + "").Select
           Selection.PasteSpecial Paste:=xlPasteAll
    Next t
    book1.Save
    book1.Close
    Next n

    End Sub

最佳答案

虽然它是西里尔文代码的一半(顺便说一句,我喜欢西里尔文)并且我无法复制它,但我猜你的错误在第二个 Selection.PasteSpecial Paste:=xlPasteAll .

因此,改变:
Range("" + A + "").Select至:Range("A:A").Select
你总共有4次Range("" + A + "")你应该到处改变它。一般来说,使用 SelectActivate在 VBA 中应避免使用。

玩得开心! :)

关于vba - PasteSpecial(运行时错误 1004),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45011008/

相关文章:

VBA ADO 连接到 .xlsx 文件

ms-access - 如何在选项组 Access VBA 中获取单选按钮的值

vba - 在 Vba excel 上突出显示搜索到的单词

php - 如何在 PHP 中使用 mysql 循环和 xlsxwriter php 导出到 Excel 工作表

r - R 中 for 循环的语法

javascript - 如何重构这段代码?我有 3 个标签需要在列表中重新选择

excel - 使用总行查找表中的最后一个单元格列

excel - 将工作表链接到主工作表并在主工作表不存在时保留值? Excel 2010

使用非相邻单元格数组的excel公式

python - 将 for 循环从 c 转换为 python