VBA将文件另存为使用不同的工作簿

时间:2015-05-19 16:13:02

标签: excel excel-vba vba

我是VBA的新手,直到现在我的经历一直很好,我有一些东西,我被问到我没有处理,但还没有学到很好。

我正在提供一些信息,让您更好地了解我的情况,并希望了解我在做什么。

我正在做的是以下内容,我正在使用一个主文件打开两个工作簿,第一个是需要清除的数据并准备填写第二个工作簿,这是一个模板(.csv)上传到SAP。

我们的想法是在主文件中包含所有代码,以便通过按下其按钮可以完成所需的所有操作,但是我无法完成将文件保存为我想要的特定名称的最后一部分使用路径在主文件中。它给我一个错误:这就是我所拥有的:

'Pasting Data in CVC Template

Workbooks("CVC_Weekly AMS.csv").Activate
Range("E3").Select
ActiveSheet.Paste

'Saving Data as:

If Range("B4") = "C:\" Then

path = Range("B4")
Else
path = Range("B4") + "\"
End If

filename = InputBox("Type in the name to save this file - Recommended name CVC_Weekly AMS Current Date ")
ActiveWorkbook.SaveAs path & filename, FileFormat:=6 '6 .csv format

似乎代码指示使用模板文件中的范围而不是使用主文件,问题是,如果我添加另一个代码,如windows(masterfile)或工作簿(masterfile).activate,它会保存主文件使用我在输入框中输入的名称。

有人可以帮我一把吗?这让我感到沮丧!

1 个答案:

答案 0 :(得分:1)

不知道你在复制什么。

此代码可以指导您正确的方向。

Sub Button1_Click()
    Dim wb As Workbook
    Dim bk As Workbook
    Dim ws As Worksheet
    Dim sh As Worksheet
    Dim ShRng As Range

    Set wb = ThisWorkbook
    Set bk = Workbooks("CVC_Weekly AMS.csv")

    Set ws = wb.Sheets("Sheet1")
    Set sh = bk.Sheets("Sheet1")

    Set ShRng = sh.Range("E3")

    ws.Range("A1").Copy ShRng



    If ws.Range("B4") = "C:\" Then
        Path = ws.Range("B4")
    Else
        Path = ws.Range("B4") + "\"
    End If

End Sub