VBA - листы с множеством листов - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть несколько разных массивов, которые являются рабочими листами.Я хочу, чтобы этот код печатал групповые листы через массив, где массив «packages_to_print» равен всему соответствующему массиву листов, которые необходимо распечатать.Если это невозможно, есть ли способ выбрать несколько печатаемых массивов?

Этот код не выдает ошибку, он просто ничего не печатает в pdf.

Вотсоответствующий код.(Lender_package - это то же самое, что и другая переменная, потому что я еще не построил оператор case для установки этой переменной в массив).Заранее благодарю за помощь.

Dim common_disclosures As Variant
Dim nh_disclosure As Variant
Dim provident_disclosures As Variant
Dim packages_to_print As Variant
Dim lender_package As Variant

common_disclosures = Array("Certification", "Responsible Use", "Security Procedures", "Acknowledgment", "FACTA Credit Score", "Anti-Steering")

nh_disclosures = Array("Loan Origination and Comp", "Rate Lock", "ECOA")
provident_disclosures = Array("MBFA")

lender_package = Array(provident_disclosures)

If subject_state <> "MA" Then
    packages_to_print = Array(common_disclosures, nh_disclosures, lender_package)
Else
    packages_to_print = Array(common_disclosures, lender_package)
End If

For j = 1 To (customerpackages * 2) 
     Worksheets(packages_to_print).Select  _ 

     ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\users\" & environ_user & "\desktop\" & borrower_array(j - 1) & " disclosures.pdf" _
    , Quality:=xlQualityMinimum, IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, OpenAfterPublish:=False
Next j

1 Ответ

0 голосов
/ 22 февраля 2019

На самом деле вы используете массив массивов в выражении WorkSheets(..).Попробуйте присоединиться к массивам как packages_to_print, и он работает нормально.

    If subject_state <> "MA" Then
    packages_to_print = Split(Join(common_disclosures, ",") & "," & Join(nh_disclosures, ",") & "," & Join(lender_package, ","), ",")
    Else
    packages_to_print = Split(Join(common_disclosures, ",") & "," & Join(lender_package, ","), ",")
    End If

Полный пробный код, можете попробовать его на любой новой книге с 8-8 листами

Sub test()
Dim common_disclosures As Variant
Dim nh_disclosures As Variant
Dim lender_package As Variant
Dim packages_to_print As Variant

    common_disclosures = Array("Sheet1", "Sheet4", "Sheet3", "Sheet2", "Sheet5")
    nh_disclosures = Array("Sheet2", "Sheet5")
    lender_package = Array("Sheet6", "Sheet8")

    subject_state = "MA"
    If subject_state <> "MA" Then
    packages_to_print = Split(Join(common_disclosures, ",") & "," & Join(nh_disclosures, ",") & "," & Join(lender_package, ","), ",")
    Else
    packages_to_print = Split(Join(common_disclosures, ",") & "," & Join(lender_package, ","), ",")
    End If

   Worksheets(packages_to_print).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\user\Desktop\Book1.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...