Excel PasteSpecial Link=True,适用于某个范围
我写的这段代码没有执行,并且发送了一条错误消息1004Excel 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
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已清空剪贴板