Pergunta

Estou tentando salvar o nome do(s) meu(s) arquivo(s) parcialmente com base nos valores das células em uma de minhas planilhas.Eu tenho o seguinte código:

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

O problema é que quero que o título seja exibido como uma porcentagem e não um valor, ou em alguns casos como uma quantia em dólares e não um valor.Alguém pode explicar como fazer isso?

Obrigado!

Foi útil?

Solução

A seguir, você salvará um arquivo com um nome como "Nome do arquivo-50%-$23.xlsx"

Por enquanto estou assumindo o seguinte (comente e me informe se estiver errado)

  • Você deseja salvar um arquivo aberto (documento do Word ou planilha do Excel?)
  • Você deseja nomear esse arquivo com base nos valores em F18 e M13
  • Os valores podem ser porcentagens ou um custo em dólares
  • F18 sempre será uma porcentagem e M13 sempre será em dólares
  • Os valores inseridos nas células são apenas valores numéricos e as células foram formatadas para% ou moeda.

(Ajudará se no futuro você expor seu problema de forma um pouco mais óbvia e incluir o que você tentou até agora)

    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

Agora vou explicar o que eu fiz.

Em primeiro lugar, quando você formata uma célula para um valor percentual e insere 0,5, o Excel irá alterá-lo para 50% automaticamente, porém o valor da célula ainda é 0,5, então quando você acessá-lo você só precisa fazer o mesmo processo que o Excel faz para exibir um número básico como um percentagem.

  1. múltiplo por 100 (0,5 torna-se 50)
  2. Adicione o caractere percentual após o número

    Sheets("Input").Cells(Row, Column).value * 100 & "%"
    

Agora a moeda é mais simples pois o valor que você vê não muda, basta adicionar a moeda Char

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

Agora, para salvar o documento.Como não tenho ideia de que tipo de documento você deseja salvar, usei apenas salvar o ativo como exemplo.O nome do arquivo é uma combinação do local (saveToDirectory) e do nome do arquivo real que construímos acima.Observe que acabei de chamá-lo de "nome do arquivo" (você pode alterar isso para uma string variável ou qualquer coisa que desejar).Finalmente, para documentos do Excel, você tem várias opções diferentes ao salvar uma inicialização de trabalho, optei por usar o tipo padrão do usuário. Veja os tipos de arquivo para salvar documentos do Excel aqui

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

ATUALIZAR

Encontrei uma maneira muito simples de incluir vírgulas nos números das moedas usando Format

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

ou

      Format(value, "Standard")

ou (você pode omitir o sinal $ da string se usar esta versão)

      Format(value, "Currency") 

Este método também pode ser usado para os valores de porcentagem (novamente, você pode omitir a string de sinal % com este método)

      Format(Value, "Percent")

Informações sobre a função FormatarVer

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top