Incluir espaço no nome do arquivo

1

Eu preciso salvar um arquivo com alguns espaços aleatórios no nome.

Está no Excel Vba. Tudo que eu encontrei após uma hora de busca na rede são sugestões para substituir o espaço com% 20 ou evitar espaços no nome do arquivo. Eu tentei brincar adicionando citações ou colocando% 20 sem sorte.

O arquivo produzido é para exportação para um sistema legado, alterar os nomes ou substituir o espaço por um outro caractere não é uma opção .

Além disso, os espaços não estão necessariamente no mesmo lugar e eu gostaria de evitar colocar uma declaração de caso para 20 nomes diferentes.

Aqui está o código que me causa problemas.

Savepath=range("a1").value
NameOfFile=range("a2").value 
FullnameSave=savepath & "\"& NameOfFile & ".xlsm" 

ActiveWorkbook.SaveAs Filename:=FullNameSave, FileFormat:=xlOpenXMLWorkbookMacroEnabled

Tudo funciona bem, exceto quando há um espaço em algum lugar no FileName.

Por exemplo, se o valor em A2 for StandardPrice , o arquivo será salvo corretamente, se for preço padrão , recebo um erro (erro 1004 no método SaveAs). Além disso, se eu codificar duro o nome como segue, funciona.

FullnameSave=savepath & "\" & "standard price" & ".xlsm" 

Eu tentei adicionar 2,3,4 até 5 citações ao redor do nome do arquivo, mas ele nunca retorna o formato correto (que seria algo como H: \ Pip_Import \ ImportTests2016-10 \ "preço padrão"

    
por P. O. 01.11.2016 / 14:48

2 respostas

0

No final, não tem nada a ver com os espaços no nome do arquivo. Reescrevendo o código para ajustar o formato do SU e vendo que ele funcionava no computador de outra pessoa, fiz com que eu voltasse ao código original com um olho diferente.

Houve um único espaço após a barra invertida "\" em

FullnameSave=savepath & "\ " & NameOfFile & ".xlsm" 

O que me desencorajou é que esse erro de digitação é ignorado / corrigido automaticamente se o nome do arquivo não contiver qualquer espaço em branco, mas gerará um erro se houver um.

Portanto, a solução foi simplesmente reescrever a parte problemática do código do zero e procurar por erros de digitação.

Não tenho certeza se esse tipo de solução se encaixa no SU, mas funcionou para esse problema específico ...

    
por 01.11.2016 / 15:56
2

Se você estiver salvando em alguma pasta local, não haverá problemas. Peguei seu código:

Sub SaveMePlease()
    savepath = Range("a1").Value
    Filename = Range("a2").Value
    FullNameSave = savepath & "\" & Filename & ".xlsm"
    ActiveWorkbook.SaveAs Filename:=FullNameSave, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

com isto na planilha:

Anoteoespaçononomedoarquivo.Seucódigofoiexecutadosemerroseproduzido:

Eu não tentei salvar em um local de rede.

    
por 01.11.2016 / 15:27