2010-11-02 34 views
1

Je suis en train de mettre à jour une liste de prix d'un classeur à l'autre, si je ne veux pas envoyer le client les macros de la liste de prix ... MaîtreExcel (2007) VBA copier et coller

Le Maître aura éventuellement un onglet pour chaque fournisseur.

Le Master Copy est sera envoyé au client sans les macros ..

Voici mon code dès maintenant ..

Je continue à obtenir une erreur 1004 Coller méthode a échoué

'Now copy from the Update Master to the Cust Master... 
mWrk = "A1:Z" & Trim(Str(TotRows)) <---TotRows is the total # of rows used 



Application.CutCopyMode = XLCopy 
Worksheets(WhichFile).Range(mWrk).Copy <-- WhichFile has the value of the sheet name.. 


Dim mXLCopy As Workbook 
Set mXLCopy = Workbooks.Open(ThisWorkbook.Path & "\Customer Master Price.xlsx") 

' See if the sheet is already there. if so delete it. 
Dim IsThere As Boolean 
IsThere = False 
For x = 1 To mXLCopy.Sheets.Count 
    If UCase(mXLCopy.Sheets(x).Name) = UCase(WhichFile) Then 
     IsThere = True 
    End If 
Next x 
Application.DisplayAlerts = False 
If IsThere Then 
    mXLCopy.Sheets(WhichFile).Delete 
End If 

' 
'Now add it & activate it.. 
mXLCopy.Sheets.Add().Name = WhichFile 
mXLCopy.Activate 

With mXLCopy.Sheets(WhichFile) 
    Range(mWrk).PasteSpecial xlPasteAll, xlPasteSpecialOperationNone <- Fails here 
End With 

Application.DisplayAlerts = True 

mXLCopy.Save 
mXLCopy.Close 
Set mRange = Nothing 
Set mXLCopy = Nothing 

Des idées quelqu'un? Allez-y & se moquer de moi si vous devez, mais je besoin d'une réponse & pas de moi travaillent ...

Répondre

1

La raison pour laquelle cela se produit est parce que votre commande mXLCopy.Sheets(WhichFile).Delete déblaie le presse-papier.

Vous devrez réorganiser le code de manière à supprimer et à recréer la feuille en premier, puis seulement copier la plage à coller.

Espérons que cela aide, soyez heureux

+0

Très bon! Merci pour l'aide de Julian. Il y a environ 10 minutes, j'ai eu une révélation concernant la suppression en faisant exactement ce que vous avez dit. J'ai réarrangé le code les séparer les deux fonctions et l'ai essayé avec succès !! .. Je suis revenu ici pour mettre à jour ce post et trouvé votre réponse .. Encore une fois, merci .. –