2017-07-10 22 views
1

データ(数式)をブックの1つのシートから別のシートにコピーし、次に他のブックとそのシートにコピーしたいとします。エラーを返す(実行時エラー1004)。 そして、挿入された場所には、値だけが挿入されます(式なし)。ラインでの エラー:Selection.PasteSpecial貼り付け:= xlPasteAllPasteSpecial(実行時エラー1004)

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 

答えて

3

それはキリル文字のコード(ところで、私はキリル文字を愛して)、私はそれを複製することはできませんの半分ですが、私はあなたのエラーが第二であることを推測しますSelection.PasteSpecial Paste:=xlPasteAll。したがって

、変更:

Range("" + A + "").Select へ: Range("A:A").Select

全体であなたが4回Range("" + A + "")を持っていて、どこでもそれを変更する必要があります。一般に、SelectActivateを使用するのは、VBAでは避けるべきです。

楽しくお楽しみください! :)

+0

さらに、キリル文字*私は最初に驚いた:P –

+0

@ASH私は文句を言いませんでしたが、私はそれをコピーすると、私は '??? '硬いです :) – Vityata

関連する問題