2017-09-03 2 views
1

J'essaie de copier une feuille dans un nouveau classeur avec uniquement des valeurs et non des formules. J'ai besoin d'une colonne pour conserver les formules.Copier le tableau des valeurs de cellule dans la plage VBA

Ce n'est peut-être pas la meilleure méthode, mais j'essaie de copier les formules dans un tableau variant, puis de copier les valeurs, puis d'ajouter le tableau de formules à la nouvelle feuille de calcul. J'utilise le code suivant, mais une erreur est survenue. « Exécuter Erreur:. 1004 application définie ou objet erreur défini

Set wbNew = Workbooks.Open(NewName) 

Dim Colm As Variant 
Dim Frange As Range 

Colm = wbNew.Sheets(wsName).Range("F1:F100").Formula 

wbNew.Sheets(wsName).UsedRange.Value = wbNew.Sheets(wsName).UsedRange.Value 

Set Frange = wbNew.Sheets(wsName).Range("F1:F100") 

Set Frange = Frange.Resize(UBound(Colm), 1) 

Frange.Value = Colm 
+1

(a) Vous avez jamais attribué une valeur à' 'wsName' et NewName' (mais (b) Quelle ligne donne l'erreur? (c) Le code a fonctionné pour moi une fois que j'ai donné les valeurs 'wsName' et' NewName', et j'ai donné des erreurs différentes à – YowE3K

+0

Je suis d'accord avec @ YowE3K tout devrait fonctionner, tant que 'NewName' et' wsName' sont corrects.Cette ligne ne fait rien: 'Set Frange = Frange.Resize (UBound (Colm), 1) '.' Frange' est déjà 'U Bound (Colm) 'lignes par 1 colonne. –

Répondre

1

Cela fonctionne pour moi:

Set wbNew = Workbooks.Open(NewName) 

Dim Colm As Variant 
Dim Frange As Range 

Set Frange = wbNew.Sheets(wsName).Range("F1:F100") 

Colm = Frange.Formula 

With wbNew.Sheets(wsName).UsedRange 
    .Value = .Value 
End With 

Frange.Value = Colm