Как перенести одну строку, а затем экспортировать ее в PDF из Excel 2007 в VBA - PullRequest
0 голосов
/ 05 июля 2018

Я очень новичок в кодировании, особенно в VBA, и у меня возникли проблемы, надеюсь, кто-нибудь мне поможет. Я попробовал несколько решений онлайн, но я не могу заставить его работать. Я также застрял в Excel 2007: /

У меня есть рабочий лист с пользовательской формой, которую я построил в VBA и которая добавит некоторые данные в группу столбцов. У меня также есть некоторые формулы, которые модифицируют некоторые из этих данных и выдают уникальный идентификатор для каждого, это важно позже.

Я пытаюсь экспортировать каждую отдельную строку (с общими заголовками) в PDF, и я полагаю, что транспонирование ее в 2 столбца будет работать намного лучше. Пока я могу экспортировать только весь рабочий лист, и он ужасен с 88 страницами, почти ничего. Сложный способ этого заключается в том, что я также хочу, чтобы он был назван уникальным идентификатором и гиперссылкой обратно в электронную таблицу под этой ячейкой.

Я знаю, что я спрашиваю много, но если кто-то может отправить меня в правильном направлении, я действительно ценю это, даже ссылки на других. Я не знаю достаточно, чтобы даже знать, что я ищу. Любые комментарии приветствуются.

Мой код, еще раз, извините за беспорядок;

Большое спасибо за любую помощь вообще!

Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
'find first empty row in database
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1


 With ws
 '  .Unprotect Password:="password"
.Cells(iRow, 1).Value = Format(Date, "mm-dd-yyyy")
.Cells(iRow, 2).Value = Me.ComboBox7.Value
.Cells(iRow, 3).Value = Me.TextBox12.Value
.Cells(iRow, 4).Value = Me.TextBox11.Value
.Cells(iRow, 5).Value = Me.CheckBox4.Value
.Cells(iRow, 6).Value = Me.ListBox4.Value
 'Row 7 Reserved for Identifier Code!!
.Cells(iRow, 8).Value = Me.TextBox4.Value
.Cells(iRow, 9).Value = Me.TextBox6.Value
.Cells(iRow, 10).Value = Me.ComboBox5.Value
.Cells(iRow, 11).Value = Me.ComboBox6.Value
.Cells(iRow, 12).Value = Me.TextBox7.Value
.Cells(iRow, 13).Value = Me.TextBox8.Value
.Cells(iRow, 14).Value = Me.TextBox13.Value
.Cells(iRow, 15).Value = Me.TextBox14.Value
.Cells(iRow, 16).Value = Me.TextBox2.Value
.Cells(iRow, 17).Value = Me.TextBox5.Value
.Cells(iRow, 18).Value = Me.TextBox9.Value
.Cells(iRow, 19).Value = Me.ComboBox4.Value
.Cells(iRow, 20).Value = Me.TextBox10.Value
.Cells(iRow, 21).Value = Me.TextBox15.Value
.Cells(iRow, 22).Value = Me.CheckBox5.Value
.Cells(iRow, 23).Value = Me.CheckBox6.Value
.Cells(iRow, 24).Value = Me.CheckBox7.Value
.Cells(iRow, 25).Value = Me.CheckBox8.Value
.Cells(iRow, 26).Value = Me.CheckBox9.Value

End With


'Export to PDF.. needs work...

Private Sub CommandButton5_Click()
Application.ScreenUpdating = False
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:="C:\Users\Admin\Documents\Excel Testing\Export.pdf", _
        OpenAfterPublish:=False
 Application.ScreenUpdating = True

End Sub

1 Ответ

0 голосов
/ 05 июля 2018

Это транспонирует строку заголовка и строку данных.

Sub ExportTransposedRow(Header As Range, Source As Range)

    With Worksheets.Add
        Header.Copy
        .Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
        Source.Copy
        .Range("B1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

        .UsedRange.ExportAsFixedFormat Type:=xlTypePDF, _
                                       Filename:="C:\Users\Admin\Documents\Excel Testing\Export.pdf", _
                                       OpenAfterPublish:=False
        Application.CutCopyMode = False
        Application.DisplayAlerts = False
        .Delete
    End With

End Sub

Использование

ExportTransposedRow Rows(1),Rows(3)
...