Ссылка на сохраненные входные данные в имени файла при сохранении .xls или .prn из VBA (возможно ли включить?) - PullRequest
0 голосов
/ 08 декабря 2018

Следующий код ниже работает с копированием диапазона и вставкой в ​​новые файлы.Файлы сохраняются как .xls и .prn.

Можно ли ссылаться на определенный диапазон или ячейку для включения в соглашение об именах?

Хотелось бы включить определенный диапазон после "Официального" и "Документа" (т.е. - Официальный 29-74A - Документ A / B / C / и т. Д.)

Это так же просто, как добавитьчто-то вроде:

& "! DocName" после "Official" и & "! DocRev" после "Document"

Любые предложения приветствуются.

Код: 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

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Вы можете включить информацию из диапазона в лист Excel, ссылаясь на этот диапазон.Но это очень поможет, если код более точно определит, с чем он работает.Код в вопросе во многом зависит от выбора вещей и от текущего выбора.Приведенный ниже пример не пытается исправить все это, только самые важные элементы для поставленного вопроса.

  1. Укажите для каждой книги переменную объекта.Таким образом, меньше путаницы.

  2. Предполагается, что ячейки с информацией об имени файла были выбраны и применено Name, которое можно вызвать с помощью свойства Range и присвоить строковой переменной.

  3. Строковая переменная затем объединяется со статическим именем файла, используя &.

Пример кода:

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
0 голосов
/ 08 декабря 2018
"C:\temp\Official -"& Range("C13:F82").address &" Document.xls"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...