Сохраните определенный лист как отдельный файл xls с помощью vba. - PullRequest
1 голос
/ 13 мая 2019

Я пытаюсь написать код vba, чтобы сохранить определенный лист в виде другого файла книги.Я хочу, чтобы пользователь мог назвать файл и путь к книге.

Я пробовал разные подходы, но ни один из них не сработал.

Если это невозможно, у меня все в порядке, только сохранение вэто местоположение:

"Q: \ Sorular \" В кодах отображается специальное имя файла.

Sub Soru_Publish()

Dim fName1 As String
fName1 = Worksheets("Storyboard").Range("E3").Value & "_" & Worksheets("Storyboard").Range("E2").Value

Worksheets("Soru_Publish").Visible = True
Worksheets("Soru_Publish_2").Visible = True
Worksheets("Soru_Publish").Activate

    Dim FirstBlankCell As Long, rngFound As Range

    With Sheets("Soru_Publish")
        Set rngFound = .Columns("A:A").Find("*", After:=.Range("A1"), _
            searchdirection:=xlPrevious, LookIn:=xlValues)
        If Not rngFound Is Nothing Then FirstBlankCell = rngFound.Row
    End With

Worksheets("Soru_Publish").Range("A1:Y" & FirstBlankCell & "").Copy
Worksheets("Soru_Publish_2").Range("A1:Y" & FirstBlankCell & "").PasteSpecial Paste:=xlPasteValues

Worksheets("Soru_Publish_2").Copy

With ActiveWorkbook
    .SaveAs filename:="Q:\Sorular\" & filename
    .Close
End With

Worksheets("Sorular").Activate
Worksheets("Sorular").Range("B4").Select

Worksheets("Soru_Publish").Visible = False
Worksheets("Soru_Publish_2").Visible = False

End Sub

К сожалению, когда я запускаю макрос, я получаю ошибку времени выполнения «1004» в SaveAsлиния.

Ответы [ 2 ]

1 голос
/ 13 мая 2019

Ваш код работает, но использование ActiveWorkbook может дать вам неожиданные результаты .

Если вы хотите сохранить один лист как новый .xls файл, просто используйте .SaveAs непосредственно на листе, который нужно сохранить, например:

Dim wrkSheet As Worksheet
Set wrkSheet = Worksheets("Soru_Publish_2")
wrkSheet.SaveAs Filename:="Q:\Sorular\" & fName1

Или так, если вы не хотите определять новую переменную:

Worksheets("Soru_Publish_2").SaveAs Filename:="Q:\Sorular\" & fName1

Надеюсь, это поможет.

0 голосов
/ 13 мая 2019

Извините, я забыл изменить имя файла на «fName1». Код работает просто отлично, это была просто опечатка.

...