Vba 将Excel工作簿中的一张工作表和多张工作表中的单元格值另存为

Vba 将Excel工作簿中的一张工作表和多张工作表中的单元格值另存为,vba,excel,excel-2010,Vba,Excel,Excel 2010,我正在尝试在Excel 2010 VBA中另存为。Excel文件有8张工作表,我想这就是为什么我不能轻松保存为单元格值的原因。这就像代码找不到“K2”(参见下面代码失败的注释)。运行时错误1004 Sub RecFilter() ActiveSheet.Range("$A$2:$H$159").AutoFilter Field:=7, Criteria1:=Array( _ "(1)", "(112)", "(113)", "(126)", "(14)", "(144)", "(216)

我正在尝试在Excel 2010 VBA中另存为。Excel文件有8张工作表,我想这就是为什么我不能轻松保存为单元格值的原因。这就像代码找不到“K2”(参见下面代码失败的注释)。运行时错误1004

Sub RecFilter()
ActiveSheet.Range("$A$2:$H$159").AutoFilter Field:=7, Criteria1:=Array( _
    "(1)", "(112)", "(113)", "(126)", "(14)", "(144)", "(216)", "(3,274)", "(448)", "(468)", _
    "(5)", "(65)", "(72)", "(80)", "(900)", "(960)", "106", "14", "2", "2,880", "3,420", "504" _
    , "513", "56", "665", "72", "845", "9,814", "900"), Operator:=xlFilterValues
Cells.Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
ActiveSheet.Columns("A:H").EntireColumn.AutoFit
ActiveSheet.Rows("1:2").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
ActiveSheet.Range("J1").Select
ActiveCell.FormulaR1C1 = "Start Date"
ActiveSheet.Range("J2").Select
ActiveCell.FormulaR1C1 = "End Date"
ActiveSheet.Range("K1").Select
ActiveCell.FormulaR1C1 = "1/1/2000"
ActiveSheet.Range("K2").Select
ActiveCell.FormulaR1C1 = "1/7/2000"
ActiveSheet.Columns("K:K").Select
Selection.NumberFormat = "m/d/yyyy"

Application.DisplayAlerts = False
Dim Path As String
Dim filename As String
Path = "C:\Users\TEST\Desktop\"

'THIS IS WHERE IS FAILS
filename =  ActiveSheet.Range("K2")

ActiveWorkbook.SaveAs filename:=Path & filename & ".xlsx", 
FileFormat:=xlOpenXMLWorkbook
End Sub
改为:

filename =  ActiveSheet.Cells(2, 11).Value

您正试图将
filename=ActiveSheet.Range(“K2”).Value
传递到
ActiveWorkbook.SaveAs文件名:
where
Range(“K2”)。Value
包含无法包含在已保存文件名中的正斜杠字符。
ActiveSheet.Range(“K2”)。选择
ActiveCell.FormulaR1C1=“1/7/2000”

C:\Users\TEST\Desktop\1/7/2000.xlsx
不是有效的文件名


尝试将
范围(“K2”).Value
更改为带连字符的日期数据类型。

K2包含对文件名无效的字符。 尝试用其他符号替换\符号。例如,下划线(33;)

您可以在K2中替换它,但这将破坏它作为日期的用途

更好的选择是只替换文件名

使用此行:

Filename = Replace(ActiveSheet.Range("K2"), "/", "_")
现在编辑。细胞(2,11)与K2相同