以下代码可用于复制范围和粘贴到新文件中。文件另存为.xls和.prn。
是否可以引用定义的范围或单元格以包含在命名约定中?
想在“正式”和“文档”之后添加定义的范围(即-官方29-74A-文档A / B / C / etc。)
就像添加以下内容一样容易吗?
&“!DocName”在“ Official”之后 和 &“!DocRev”后的“文档”
任何建议表示赞赏。
代码: Sub()
Range("C13:F82").Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Cells.Select
Selections.ColumnWidth = 14
Application.CutCopyMode = False
Application.DisplayAlerts = False
ChDir "C:\temp"
ActiveWorkbook.SaveAs Filename:=
"C:\temp\Official - Document.xls", FileFormat:=xlExcel8, _
password:="", WriteResPassword:="",ReadOnlyRecommended:=False, _
CreateBackup:-False
ActiveWorkbook.SaveAs Filename:=
"C:\temp\Official - Document.prn", FileFormat:= _
xlTextPrinter, CreateBackup:=False
ActiveWindow.Close
End Sub
答案 0 :(得分:0)
您可以通过引用范围来将范围信息包含在Excel工作表中。但是,如果代码可以更准确地标识其工作内容,则将大有帮助。问题中的代码在很大程度上取决于选择内容以及当前选择的内容。下面的示例并没有试图纠正所有这些问题,而只是试图解决所陈述问题的最重要内容。
为每个工作簿指定一个对象变量。这样一来,发生混淆的机会就更少了。
假定已选择具有文件名信息的单元格并应用了Name
,可以使用Range
属性调用该单元格并将其分配给字符串变量。
然后使用&
将字符串变量连接到静态文件名。
示例代码:
Dim wbSource as Excel.Workbook
Dim wbTarget as Excel.Workbook
Dim sDocName as String
Set wbSouce = ActiveWorkbook
sDocName = wbSource.ActiveSheet.Range("DocName").Value
' This is the first workbook, not the new one
'Do other things
Set wbTarget = Workbooks.Add
'Do other things
wbTarget.SaveAs Filename:=
"C:\temp\Official " & sDocName & "- Document.xls", FileFormat:=xlExcel8, _
password:="", WriteResPassword:="",ReadOnlyRecommended:=False, _
CreateBackup:-False
答案 1 :(得分:-1)
"C:\temp\Official -"& Range("C13:F82").address &" Document.xls"