我正在尝试使用以下代码将数据作为值粘贴到另一张纸上。我也希望新的工作表名称来自原始工作表的单元格引用
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
答案 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")