Question

J'essaie de sauvegarder le nom de mon (s) fichier (s) partiellement basé sur des valeurs de cellule dans l'une de mes feuilles.J'ai le code suivant:

Sheets("Input").Range("F18").Value & " - " & Sheets("Input").Range("M13").Value

Le problème est que je souhaite que le titre s'affiche comme un pourcentage et non une valeur, ni certains cas en tant que montant en dollars et non une valeur.Quelqu'un peut-il expliquer comment cela?

merci!

Était-ce utile?

La solution

Ce qui suit enregistre un fichier avec un nom tel que "nom de fichier-50% - 23.xlsx"

Pour l'instant, je suppose ce qui suit (veuillez commenter et m'informer si je me trompe)

  • Vous souhaitez enregistrer un fichier que vous avez ouvert (mot doc ou feuille Excel?)
  • Vous souhaitez nommer ce fichier en fonction des valeurs de F18 et M13
  • Les valeurs peuvent être des pourcentages ou un coût en dollars
  • F18 sera toujours un pourcentage et M13 sera toujours en dollars
  • Les valeurs
  • saisies dans des cellules ne sont que la valeur numérique et les cellules ont été formatées à% ou à la monnaie.

(Cela aidera si, à l'avenir, vous posez votre problème un peu plus évidemment et inclure ce que vous avez essayé jusqu'à présent)

    Sub testSave()

Dim SaveToDirectory As String

 'just checking string looks good comment or delete when happy
MsgBox ("other text you want " & Cells(18, 6).Value * 100 & "%-$" & Format(Cells(13, 13).Value, "#,###.##"))

    'set save directory
    SaveToDirectory = "C:\Users\DMASON2\Documents\"

    'set file name
    ActiveWorkbook.SaveAs Filename:=SaveToDirectory & "FileName-" & Cells(18, 6).Value * 100 & "%-$" & Format(Cells(13, 13).Value, "#,#*.##"), FileFormat:=xlWorkbookDefault


    End Sub

Maintenant pour expliquer ce que j'ai fait.

Tout d'abord lorsque vous formatez une cellule à une valeur de pourcentage et entrez dans 0.5 Excel le modifiera automatiquement à 50%, mais la valeur de la cellule est toujours 0.5 Donc, lorsque vous y accédez, il vous suffit de faire le même processus Excel pour afficher une base nombre en pourcentage.

  1. multiple de 100 (0,5 devient 50)
  2. Ajouter dans le pourcentage de charcuterie après le nombre

    Sheets("Input").Cells(Row, Column).value * 100 & "%"
    
  3. Maintenant, la monnaie est plus simple que la valeur que vous voyez ne change pas, tout ce que vous avez à faire est d'ajouter dans la devise Char

       "$" & Sheets("Input").Cells(row, column).value
    

    Maintenant pour sauver le document. Comme je n'ai aucune idée de la sorte de document que vous souhaitez enregistrer, je viens d'utiliser en sauver l'actif comme exemple. Le nom de fichier est une combinaison de l'emplacement (sauvetodirectory) et du nom de fichier réel que nous avons construit ci-dessus. NOTE que je viens d'appeler le "nom de fichier" (vous pouvez modifier cela en une chaîne variable ou tout ce que vous voulez). Enfin pour Excel Documents Vous avez un certain nombre d'options différentes quand on peut enregistrer une balancée de travail, j'ai choisi d'utiliser le type par défaut des utilisateurs. Voir Types de fichiers pour sauvegarder Excel Docs ici < / a>

      ActiveWorkbook.SaveAs Filename:=SaveToDirectory & "FileName-" & Cells(18, 6).Value * 100 & "%-$" & Cells(13, 13).Value, FileFormat:=xlWorkbookDefault
    

    mise à jour

    J'ai trouvé un moyen très simple d'inclure des virgules dans les numéros de devise en utilisant le format

          Format(value, #,###.##)
    

    ou

          Format(value, "Standard")
    

    ou (vous pouvez omettre le signe $ de la chaîne si vous utilisez cette version)

          Format(value, "Currency") 
    

    Cette méthode peut également être utilisée pour les valeurs pourcentage (à nouveau, vous pouvez omettre la chaîne de signe en% avec cette méthode)

          Format(Value, "Percent")
    

    Informations sur la fonction Format Voir

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top