Excel PasteSpecial Link=True,适用于某个范围

Excel PasteSpecial Link=True,适用于某个范围,excel,vba,range,syntax-error,paste,Excel,Vba,Range,Syntax Error,Paste,我写的这段代码没有执行,并且发送了一条错误消息1004 Dim I As Long Dim K As Long Dim Plage() As String Dim Dummy As String Dim Adresses() As String Dim ObjetCible As Workbook Dim AdresseCible As String 'The function Plagedetab gets ranges of tables in the workbook as strings

我写的这段代码没有执行,并且发送了一条错误消息1004

Dim I As Long
Dim K As Long
Dim Plage() As String
Dim Dummy As String
Dim Adresses() As String
Dim ObjetCible As Workbook
Dim AdresseCible As String
'The function Plagedetab gets ranges of tables in the workbook as strings
  Plage = Plagedetab("C:\Users\Oumayna EL JAHRANI\Desktop\Test\TABLEAUX_PILLIER_III_CONSO")
'The function adresses gets paths to Excel workbooks as strings (there's a workbook for each worksheet)
  Adresses = Adressescibles("C:\Users\Oumayna EL JAHRANI\Desktop\Test\TABLEAUX_PILLIER_III_CONSO")
Dim Fichiersource As Workbook
Set Fichiersource = Workbooks.Open("C:\Users\Oumayna EL JAHRANI\Desktop\Test\TABLEAUX_PILLIER_III_CONSO")
Debug.Print (Fichiersource.Name)
Dim ClasseurType As Workbook: Set ClasseurType = Workbooks.Open("C:\Users\Oumayna EL JAHRANI\Desktop\Test\Fichier Type.xlsx")
  For I = 1 To Fichiersource.Sheets.Count
    AdresseCible = Adresses(I)
    Debug.Print (AdresseCible)
    Set ObjetCible = Workbooks.Open(AdresseCible)
    Dummy = Plage(I)
    Debug.Print (Dummy)
    ClasseurType.Activate
      For K = 1 To ClasseurType.Sheets.Count - 1
        If K = 1 Or K = 2 Then
'Here i copy all the formatting from my original file to the workbooks i created
          Debug.Print (CStr(ClasseurType.Sheets.Count))
          Fichiersource.Activate
          Fichiersource.Worksheets(I).Select
          Range(Dummy).Select
          Selection.Copy
          ObjetCible.Activate
          ObjetCible.Worksheets(K).Select
          Range("C7").Select
          Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
          SkipBlanks:=False, Transpose:=False
          Application.CutCopyMode = False
        ElseIf K = 3 Then
        End If
      Next
'Here i need to copy links from the last worksheet to the 2 first ones( of each workbook )
    ObjetCible.Activate
    ObjetCible.Worksheets(4).Select
    Range(Dummy).Select
    Selection.Copy
    ObjetCible.Worksheets(2).Select
    Range("C7").Select
'The pastespecial beyond doesn't work i tried with paste Nothing seems to work and i get a message error 1004
    ActiveSheet.PasteSpecial (Link = True)
    ObjetCible.Worksheets(4).Select
    Range(Dummy).Select
    Selection.Copy
    ObjetCible.Worksheets(1).Select
    Range("C7").Select
    ActiveSheet.PasteSpecial (Link = True)
    ObjetCible.Close SaveChanges:=True
  Next
End Sub
这里的问题是粘贴特殊,我知道它只适用于工作表,所以我想可能是因为我放置了范围(“C7”)。请在阻止代码之前选择。但是我仍然需要粘贴到精确范围内的表的链接。
提前感谢

那应该是
ActiveSheet.paste特别链接:=True
这段代码确实伤了眼睛=)。看一下SO上的线程。@BigBen我再也看不到错误了,但是链接没有被复制。你知道是什么原因吗?不确定。从中,对于
链接
:True可建立到粘贴数据源的链接。如果源数据不适合链接或源应用程序不支持链接,则忽略此参数。在执行activesheet.PasteSpecial时,默认值为False剪贴板中没有要粘贴的内容。上面的selection.PasteSpecial已清空剪贴板