Note: The other languages of the website are Google-translated. Back to English
Увійти  \/ 
x
or
x
Реєстрація  \/ 
x

or

Як зберегти файл Excel зі значенням комірки?

Коли ви користуєтесь робочою книгою, чи замислювались ви коли-небудь зберегти файл Excel на основі вмісту комірки? Наприклад, у вас у клітинці А1 є "Ціна продажу", і ви хотіли б зберегти книгу як назву Ціна продажу. Звичайно, ви можете ввести ім’я у діалоговому вікні Зберегти як, а потім зберегти його. Але це буде неефективним методом у вашому обсязі роботи. Сьогодні я розповім про швидкий трюк для його вирішення.

Збережіть файл Excel із певним значенням комірки за допомогою коду VBA

Вкладка Office Увімкніть редагування та перегляд вкладок в Office та значно спростіть свою роботу ...
Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%
  • Повторне використання будь-чого: Додайте найбільш уживані або складні формули, діаграми та будь-що інше до вибраного та швидко використовуйте їх у майбутньому.
  • Більше 20 функцій тексту: Витяг номера з текстового рядка; Витяг або видалення частини текстів; Перетворення чисел і валют в англійські слова.
  • Злиття інструментів: Кілька робочих книжок та аркушів в одне ціле; Об’єднати кілька клітинок / рядків / стовпців без втрати даних; Об’єднати повторювані рядки та суму.
  • Розділити інструменти: Розділити дані на кілька аркушів на основі значення; Одна робоча книга до декількох файлів Excel, PDF або CSV; Один стовпець на кілька стовпців.
  • Пропустити вставку Приховані / відфільтровані рядки; Граф і сума за кольором тла; Надіслати персоналізовані електронні листи кільком одержувачам масово.
  • Суперфільтр: Створюйте розширені схеми фільтрів і застосовуйте їх до будь-яких аркушів; сортувати за тижнями, днями, періодичністю тощо; фільтр жирним шрифтом, формули, коментар ...
  • Понад 300 потужних функцій; Працює з Office 2007-2019 та 365; Підтримує всі мови; Простота розгортання на вашому підприємстві чи в організації.

стрілка синя права міхур Збережіть файл Excel із певним значенням комірки за допомогою коду VBA


Наступний код VBA може допомогти вам зберегти вашу книгу із зазначеним значенням комірки, будь ласка, зробіть наступне:

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Вікно Microsoft Visual Basic для програм.

2. Клацання Insert > Модуліта вставте наступний код у Вікно модуля.

Код VBA: Збережіть файл Excel із певним значенням комірки

Private Sub filename_cellvalue()
'Update 20141112
Dim Path As String
Dim filename As String
Path = "C:\Users\dt\Desktop\my information\"
filename = Range("A1")
ActiveWorkbook.SaveAs filename:=Path & filename & ".xls", FileFormat:=xlNormal
End Sub

3. А потім натисніть F5 ключ для виконання коду, і вашу книгу було названо вмістом комірки комірки A1. Дивіться знімок екрана:

doc-save-with-cell-value-1

Примітки:

1. Ви можете вказати будь-яке значення комірки як ім'я файлу, просто змінивши А1 на інше посилання на комірку у наведеному вище коді.

2. Ваша активна книга буде збережена в папці C: \ Users \ dt \ Desktop \ моя інформація \ (остання коса риса повинна залишатися, коли ви вставляєте своє місце замість нього), ви можете змінити шлях до своїх потреб.


Статті по темі:

Як зберегти файл із датою та часом у Excel?

Як показати шлях до файлу в рядку заголовка або на панелі інструментів у Excel?


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2019 та 365. Підтримує всі мови. Простота розгортання на вашому підприємстві чи в організації. Повна функція 30-денної безкоштовної пробної версії. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Ahenobarbus · 4 months ago
    I have updated this to work with Excel 2019 and to create a PDF:

    Sub FileNameAsCellContent()

    Dim userPath As String
    Dim FileName1 As String
    Dim FileName2 As String

    userPath = Environ("UserProfile")

    'Edit the save location here with first folder location after C:\Users\[user]\ or leave to save to Desktop
    Const LOCATION As String = "\Desktop\"

    'Select which cells to use in filename here
    Application.DisplayAlerts = False
    FileName1 = Range("F5")
    FileName2 = Range("B6")

    With ActiveSheet

    'Edit filename format here or keep as default (default text - text.pdf)
    PDFFullName = userPath & LOCATION & FileName1 & " - " & FileName2 & ".pdf"

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=PDFFullName, Quality:=xlQualityStandard, OpenAfterPublish:=False
    Application.DisplayAlerts = True

    End With
    End Sub
  • To post as a guest, your comment is unpublished.
    Danny_cc · 9 months ago
    Hi, I’m wondering if anyone could help me. I have this pasted into my workbook but it returns a file name of FALSE.xlsm in the Documents folder rather than the specified path.

    I had to tweak it to make this work, prior to tweaking it I was getting a Run-time error ‘1004’ Excel cannot access the file.

    This is the amended code:

    Sub filename_cellvalue()
    Dim Path As String
    Dim filename As String
    Path = “C:\Users\DC\Documents\Planners\”
    Filename = Range (“K2”)
    ActiveWorkbook.SaveAs Filename = (Path & Filename & “.xlsm”)
    End Sub

    Using Excel 2016

    Any help would be greatly appreciated.

    Thanks in advance
  • To post as a guest, your comment is unpublished.
    faiyaz · 1 years ago
    can anyone please help with a solution, i've managed to get the output correctly if the cell is not blank

    Private Sub Saveas()
    Dim path As String
    Dim filename1 As String

    path = "C:\User\Compwork\"

    filename1 = path & Range("G4") & " " & "-" & " " & Range("G6") & " " & "-" & " " & Range("H7") & " " & "VTError"
    Application.DisplayAlerts = False
    ActiveWorkbook.Saveas filename1, FileFormat:=52, CreateBackup:=False
    ThisWorkbook.Worksheets("report").ExportAsFixedFormat Type:=x1typePDF, Filename:=filename1
    Application.DisplayAlerts = True
    ActiveWorkbook.Close

    End Sub



    However, my problem is I'd like to save a filename without leaving a space if the cell value is NULL for instance, if G6 value is blank then i like to the output "G4-H7 VTError".
    Any there a way to approach this?


    Thanks.
  • To post as a guest, your comment is unpublished.
    faiyaz · 1 years ago
    can anyone please help with a solution, i've managed to get the output correctly if the cell is not blank

    Private Sub Saveas()
    Dim path As String
    Dim filename1 As String

    path = "C:\User\Compwork\"

    filename1 = path & Range("G4") & " " & "-" & " " & Range("G6") & " " & "-" & " " & Range("H7") & " " & "VTError"
    Application.DisplayAlerts = False
    ActiveWorkbook.Saveas filename1, FileFormat:=52, CreateBackup:=False
    ThisWorkbook.Worksheets("report").ExportAsFixedFormat Type:=x1typePDF, Filename:=filename1
    Application.DisplayAlerts = True
    ActiveWorkbook.Close

    End Sub



    However, my problem is I'd like to save a filename without leaving a space if the cell value is NULL for instance, if G6 value is blank then i like to the output "G4-H7 VTError".
    Any there a way to approach this?


    Thanks.

  • To post as a guest, your comment is unpublished.
    Dumbo · 2 years ago
    I have a control button for saving as PDF with a specific name to a specific location already working, but I want to modify the code as the filename is the name of the active sheet plus the value of a specific cell from another sheet. How do I do that? This is what I have for saving as PDF:


    Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    filename:="\\U:\Documents\My_IT_Stuff\T&A\PP11", _
    OpenAfterPublish:=False
    Application.ScreenUpdating = True
    End Sub

    Thank you!
  • To post as a guest, your comment is unpublished.
    Izabela · 2 years ago
    Hi. I am very excited it could work but for me in it is saying "BASIC runtime error. Sob-procedure or function procedure not defined." and arrow indicating line 6. What should I do?
  • To post as a guest, your comment is unpublished.
    Bruna · 2 years ago
    Se a célula de referencia estiver em uma outra planilha já aberta? Como faço?
  • To post as a guest, your comment is unpublished.
    Tim · 2 years ago
    Hi, I am trying to use this code but when i try to execute I get a runtime 1004 error and it highlights row 7 as invalid: ActiveWorkbook.SaveAs filename:=Path & filename & ".xls", FileFormat:=xlNormal
    How can I resolve this? Im using office 365
  • To post as a guest, your comment is unpublished.
    Ahmad · 2 years ago
    Hi friends,
    I have a problem and would be glad if there is someone to help me
    I have a file at drive "F" and folder "ABS" - my filename is "Listdata"
    In an Excel file on my desktop I want cells(4,4) to retieve data from "ABS" sheet(1) and cell (2,2)
    The below code
    Sub Macro1()
    activesheet.Cells(4, 4).Value = " F:\ABS\" & listdata & ".xlsx" & Sheets(1).Cells(2, 2).Value
    End Sub
    but it does not work correctly
    Thanks Friends
  • To post as a guest, your comment is unpublished.
    radulus · 3 years ago
    hi all!

    How can save repetitive input in the same cells, in other cells, with a Macro?

    In sheet1, I input data in A1, B1, C1, for n-times in a day. In sheet2, i need save all this records, in A2, B2, C2, A3, B3, C3, etc. Tnx!
  • To post as a guest, your comment is unpublished.
    Rajiv · 3 years ago
    how to create a macro to save multiple sheets as with their cell values as file names
    Thanks,
    Rajiv
  • To post as a guest, your comment is unpublished.
    Bruce McIntyre · 3 years ago
    Ok so i got this working good using an in sheet button. Now i would like it to just save normally after the initial save as. Can this be done? Using the same save button?
    Thanks Bruce
  • To post as a guest, your comment is unpublished.
    Janice Burbage · 4 years ago
    What if you want to you just want to define the filename but have the option to pick the file path each time you save?

    Also can you specify multiple cells for the filename. The cells are merged also.

    Save to different file paths each time

    Use multiple cells for the filename
  • To post as a guest, your comment is unpublished.
    Stef · 4 years ago
    Please help... I've managed to do everything. But it saves the docs into My Documents instead of the specified server...



    Private Sub CommandButton1_Click()
    Dim Path As String
    Dim FileName1 As String
    Dim FileName2 As String
    Dim FileName3 As String
    Dim FileName4 As String
    Dim FileName5 As String
    Path = "J:\Protection Services\Documents\Booysendal security"
    FileName1 = Range("A2")
    FileName2 = Range("B2")
    FileName3 = Range("C2")
    FileName4 = Range("D2")
    FileName5 = Range("E2")
    ActiveWorkbook.SaveAs Filename:=FileName1 & "-" & FileName2 & "-" & FileName3 & "-" & FileName4 & "-" & FileName5 & ".xls", FileFormat:=xlNormal
    End Sub
    • To post as a guest, your comment is unpublished.
      Michael Z · 1 years ago
      Add a backslash after security and before the quote... ...security\"
  • To post as a guest, your comment is unpublished.
    Keenan · 4 years ago
    Hi,
    What should i add if I wanted to save the active worksheet but using the sheet 1 cell value?
  • To post as a guest, your comment is unpublished.
    Chris · 4 years ago
    This works great... Thank you, but I need to save as a PDF... Any thoughts?

    Thanks

    Chris
    • To post as a guest, your comment is unpublished.
      Martin S · 4 years ago
      same as above but replace ActiveWorkbook.SaveAs with: "ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _"C:\input filenamne.pdf", Quality:= _
      xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
      OpenAfterPublish:=True
      • To post as a guest, your comment is unpublished.
        Valdemar Peña · 1 years ago
        Thanks for your feedback, helped me a lot.
  • To post as a guest, your comment is unpublished.
    Kelvin · 4 years ago
    I need to save as a .csv file.
    how would I change this to make it save as a .csv file?
    Private Sub filename_cellvalue()
    'Update 20141112
    Dim Path As String
    Dim filename As String
    Path = "C:\Doorlister\import\DoorJob\"
    filename = Range("AC2")
    ActiveWorkbook.SaveAs filename:=Path & filename & ".xls", FileFormat:=xlNormal
    End Sub

    Thank you in advance for your help!
    • To post as a guest, your comment is unpublished.
      George · 4 years ago
      I think i did something wrong in here ...

      It gives me an error in line Sheets("shitname").Select

      Probably i did something wrong when i named the "shitname" like the cell K10

      i want to change the sheet to another sheet that is called exactly like the cell K10


      ' gicsel Macro
      '
      ' Keyboard Shortcut: Ctrl+Shift+C
      '
      Selection.Copy
      Sheets("debagat").Select
      Rows("8:8").Select
      ActiveSheet.Paste
      Dim Path As String
      Path = "C:\cgxml\"
      Dim filename As String
      filename = Range("A8")
      Dim shitname As String
      shitname = Range("K10")
      Sheets("shitname").Select
      Application.CutCopyMode = False
      ActiveWorkbook.SaveAs filename:=Path & filename & ".xml", FileFormat:=xltxt, CreateBackup:=False
      Sheets("TOTAL").Select
      ActiveCell.Offset(1, 0).EntireRow.Select
      End Sub
  • To post as a guest, your comment is unpublished.
    Ionel D · 4 years ago
    You guys are lifesavers. Thanks!
  • To post as a guest, your comment is unpublished.
    Ken Gaines · 5 years ago
    I have a template that I don't want to be written over so that the user is required to save the file named by date entered into one of the fields.
    I don't want the user to have to open tools then select / run macro. They might just as well enter the filename.
    • To post as a guest, your comment is unpublished.
      Martin S · 4 years ago
      you can add the =NOW() as a parameter to your filename in the cell before you extract it in the Macro (and also place a standard button in the corner of the page so that the emplyee wont have to open any tools
  • To post as a guest, your comment is unpublished.
    Greg · 5 years ago
    This is pretty cool... but there seems to be a bug that I'm not sure how to correct. I'm using this in a macro-enabled template.
    I open the template,
    I make changes/updates,
    I hit F5 to run the macro... and... a "Go To" dialog box pops up expecting me to key a "reference" in.

    However, if I hit ALT F11, and THEN hit F5, the new .xls file is saved as expected.

    Do I always need to open up the Visual Basic module to run this "save" procedure?
  • To post as a guest, your comment is unpublished.
    Alana · 5 years ago
    Hi,

    Mine will only save as the path and file name. I am only wanting the file name referenced from the cell to save only. Can you please help me?
  • To post as a guest, your comment is unpublished.
    Dan · 5 years ago
    Chris.
    You can concatinate it in a separate cell and then refernce that cell to be your file name value.
  • To post as a guest, your comment is unpublished.
    Chris · 6 years ago
    module does not save in .XlsX ;

    think it has something to do with line 7;; ".xls", FileFormat:=xlNormal;

    Also how can I modify to take the value from 3 different cells concatenated?
    for instance: first name , last name , date; in line 6 of the code?
    • To post as a guest, your comment is unpublished.
      Shaun · 1 years ago
      Dim filename As String
      Dim filename1 As String
      Dim filename2 As String

      Path = "C:\Users\dt\Desktop\my information\"
      filename = Range("A1")
      filename1 = Range("A2")
      filename2 = Range("A3")
      ActiveWorkbook.SaveAs filename:=Path & filename & "-" & filename1 & "-" & filename2 ".xls", FileFormat:=xlNormal