arrays - VBA - 多表阵列打印表
问题描述
我有几个不同的数组是工作表。我想要构建的是使此代码通过数组打印一组工作表,其中“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
解决方案
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
推荐阅读
- amazon-web-services - 无法从 IntelliJ 将远程调试器附加到 AWS ESC docker 映像?
- python - ValueError:参数的类型不受支持(整数类型 id)
- html - 无法使用 css Flex-box 和“transform: translateZ(-50%)”正确居中项目
- css - 如何向我的 svg 添加特定的盒子阴影?
- iis-8 - IIS 未在下载的静态 Exe 文件中发送数字签名属性
- outlook - 如何在收到电子邮件后将 Outlook 连接到另一个应用程序?
- android - Android Gradle 插件 4.2.0 R8 ArrayIndexOutOfBoundsException
- python - 如何正确解析python中的文件,并将其内容保存到字典中
- docker - K3d 和 OpenFaas 中的本地 Docker 注册表
- c# - 如何记录 MassTransit 发布的消息/内部错误?