Значение ячейки SaveAs от одного листа в книге Excel с несколькими листами

Я пытаюсь SaveAs в 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.Range("K2").Value для имени ActiveWorkbook.SaveAs filename: где Range("K2").Value содержит символы косой черты, которые не могут быть включены в имя сохраненного файла. ActiveSheet.Range("K2").Select ActiveCell.FormulaR1C1 = "1/7/2000"

C:\Users\TEST\Desktop\1/7/2000.xlsx не является допустимым именем файла.

Попробуйте изменить Range("K2").Value для типа данных с переносимой датой.

K2 содержит символы, которые недействительны для имени файла. Попробуйте заменить \ знаки чем-то другим. Например, подчеркивание (_).

Вы можете заменить его в K2, но это сломает его полезность в качестве даты.

лучший вариант – заменить его только для имени файла.

Используйте эту строку:

 Filename = Replace(ActiveSheet.Range("K2"), "/", "_") 

Изменить на:

 filename = ActiveSheet.Cells(2, 11).Value 
  • пытаясь расширить vlookup на другие ячейки без автоматического изменения значений
  • Проблема при реализации функции GAMMA.INV
  • VBA «Ошибка компиляции: аргумент не факультативный»
  • Таблица в Excel из хранимой процедуры SQL Server с полем параметров в книге
  • получение ошибки «Переменная объекта или с не заданной переменной блока»
  • Автоматизация Excel 2010 с использованием F #
  • Как суммировать результаты двух операторов if в одной ячейке?
  • Стиль слияния и цвета не применяется в формате Apache POI excel 2003
  • Удаление строк с вершины или конца без каких-либо условий от MS EXCEL
  • В Excel, как я могу избежать повторения большой части формулы только для проверки, является ли возвращаемое значение пустым?
  • считать и искать в excel
  • Давайте будем гением компьютера.