Copie complète de la feuille et coller comme valeurs
Je suis en train de copier la feuille de calcul active dans un nouveau classeur, puis enregistrer ce nouveau classeur et le fermer. Ceci est déclenchée en cliquant sur un formulaire (bouton) dans la feuille de calcul active. Le bouton est alors supprimé dans le nouveau classeur avant de l'enregistrer.
Je suis à l'aide de formules dans la feuille de calcul active. Je suis en train de copier uniquement les valeurs et toute autre mise en forme.
Le nouveau classeur n'affiche pas les valeurs, mais seulement des cellules vides (pas de formules sont indiqués, soit, ce qui est évidemment ok). Plus précisément, le problème semble se produire lors de la copie de cellules indirects des formules; il semble y avoir aucun problème pour les cellules qui utilisent plus simple, les références à d'autres feuilles dans le classeur d'origine.
Voici le code:
Sub CopyRemoveFormAndSave()
Dim RelativePath As String
Dim shp As Shape
Dim testStr As String
' Copy and Paste Active Sheet
ActiveSheet.Copy
With ActiveSheet.UsedRange
.Value = .Value
End With
' Remove forms
For Each shp In ActiveSheet.Shapes
If shp.Type = 8 Then
If shp.FormControlType = 0 Then
testStr = ""
On Error Resume Next
testStr = shp.TopLeftCell.Address
On Error GoTo 0
If testStr <> "" Then shp.Delete
Else
shp.Delete
End If
End If
Next shp
' Save New Workbook and Close
Application.DisplayAlerts = False
RelativePath = ThisWorkbook.Path & "\" & ActiveSheet.Name & "_Reporting_" & Format(Now, "yymmdd") & ".xlsx"
ActiveWorkbook.SaveAs Filename:=RelativePath
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
OriginalL'auteur Nick | 2013-10-16
Vous devez vous connecter pour publier un commentaire.
Ici est une approche légèrement différente.
Logique:
Code: (Essayé et testé)
OriginalL'auteur Siddharth Rout
Cela peut-être un peu tard comme réponse pour vous, mais peut aider quelqu'un d'autre à l'avenir.
Suit:
Shift
bouton et cliquez sur la Dernière Feuille du Classeur (Tous vos feuilles sont sélectionnées)Ctrl
+A
+A
, ou, en cliquant sur la petite flèche en haut à gauche de la cuspide de la colonne A et la ligne 1. (Toutes les cellules de la feuille active est sélectionné)Cette copie colle comme les valeurs de toutes les cellules de toutes les feuilles. Enregistrer le fichier sous.
Est sûr. Pensez-vous que je devrais prendre cette réponse donc? Le sujet est renommé par la suppression de VBA. Donc, la question peut pop-up sur les recherches en tant que générique Qn. Donc une réponse générique pourrait aider?
Hm, je suppose que c'est juste un point de
OriginalL'auteur M.L