粘贴值和文件名称在单元格引用中

时间:2018-09-11 11:21:13

标签: excel vba

我正在尝试使用以下代码将数据作为值粘贴到另一张纸上。我也希望新的工作表名称来自原始工作表的单元格引用

Private Sub cmdSave()
Dim sFileName As String
Dim WB As Workbook

Application.DisplayAlerts = False

sFileName = "MyFileName.csv"
'Copy the contents of required sheet ready to paste into the new CSV
Sheets(1).Range("A1:T85").Copy 'Define your own range

'Open a new XLS workbook, save it as the file name
Set WB = Workbooks.Add
With WB
    .Title = "MyTitle"
    .Subject = "MySubject"
    .Sheets(1).Select
    ActiveSheet.Paste
    .SaveAs "MyDirectory\" & sFileName, xlCSV
    .Close
End With

Application.DisplayAlerts = True
End Sub

1 个答案:

答案 0 :(得分:1)

在您的代码中,您将以下行的文件名的值硬编码为“ MyFileName.csv”:sFileName = "MyFileName.csv"

要使用单元格的值,可以使用对您喜欢的单元格的引用。要在工作簿的第一个工作表上使用单元格B1,可以使用以下代码运行代码:sFileName = Thisworkbook.worksheets(1).Cells(1,2).value

仅将数据粘贴为值,您可以像通常那样使用特殊粘贴。将.Paste中的ActiveSheet.Paste替换为.PasteSpecial xlPasteValues。默认情况下,.PasteSpecial不能单独用于Activesheet,因此将Activesheet替换为Activesheet.Range("A1")