如何将用户已经通过输入框指定的新名称另存为CSV格式的工作簿?

时间:2019-01-04 06:29:56

标签: excel vba excel-vba

我需要一个宏来将工作簿另存为CSV文件。我已经拥有的代码可以正常工作,但是除此之外,我还要求用户键入一个新文件(CSV)名称,以便新的CSV文件成为用户键入的文件。我怎样才能做到这一点?到目前为止,我还没有做到。现在,我需要做的是将新名称正确放置在代码中,并在每次需要不同名称时都进行更改。我需要添加什么代码?

我尝试为CSV_FILE_NAME更改代码中的“ \ Group 1”,但它不起作用。 第1组是一个新的CSV文件,其代码正好在其中,我不希望这样。我希望用户键入任何名称。 CSV_FILE_NAME是新名称应位于的变量。

Sub CSV_TERMINADO()

    Range("A:D,F:F,H:H").Select
    Range("H1").Activate
    Selection.Delete Shift:=xlToLeft
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "Nombre"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "Correo"
    Range("A1").Select

    LibroActual = ActiveWorkbook.Name
    CSV_FILE_NAME = InputBox("Type a name", "CSV FILE")
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Group 1", _
    FileFormat:=xlCSV, CreateBackup:=False
    Workbooks.Open ThisWorkbook.Path & "\" & LibroActual

End Sub

在运行宏(子)之前,我希望最终得到用户键入的新CSV文件名,而不必在代码中正确命名。

2 个答案:

答案 0 :(得分:0)

ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & CSV_FILE_NAME _ ...

答案 1 :(得分:0)

这应该有效:

ActiveWorkbook.SaveAs fileName:=ActiveWorkbook.Path & Application.PathSeparator & CSV_FILE_NAME, _
                      FileFormat:=xlCSV