我需要打印一个依赖于输入页面上两个值的差异的数组字符串,以在同一PDF中分隔多个工作表,但我遇到了一些问题。
根据两个单元格的差异,该函数将确定要打印的数组。
我想过两种可能的解决方案,但都没有成功。
主要目标
我正在使用MSFT 365。我最初尝试使用间接数组引用来引用一个单元格,该单元格包含一个变量值字符串,其中包含要包含的数组,但没有成功。
接下来,我尝试为这个差异的所有100个可能值进行硬编码,但在这种情况下,我遇到了行限制和与使用_在另一行继续数组函数相关的错误。
如果差值等于3,则如下所示。如果差值等于4,则需要添加另一个数组行,包括"schedule05“、"report05”、"p&l05“
Option Explicit
Sub PrintTest()
'if a certain difference value, use
If (Worksheets("Inputs").Range("D7") - Worksheets("Inputs").Range("D6")) = "3" Then
Dim pageArray As Variant
'set array for given difference
pageArray = Array("schedule01", "report01", "p&l01", _
"schedule02", "report02", "p&l02", _
"schedule03", "report03", "p&l03", _
"schedule04", "report04", "p&l04")
Worksheets("data").Activate
Worksheets("data").PageSetup.CenterHorizontally = True
'page setup values
With ActiveSheet.PageSetup
.FitToPagesWide = 1
.FitToPagesTall = 1
.Orientation = xlLandscape
End With
'call array for print
Worksheets("data").Range("pageArray").PrintOut
Elseif
'Here is where I could put another similar function for a difference of 4
'......
Else
'Here is where I could put another similar function for a difference of x
End If
End Sub
我希望这会得到一个PDF,其中每个数组都打印在单独的一张纸上,并根据差值打印一组选择的数组。
发布于 2019-04-11 00:08:59
为了扩展我的评论,它看起来像这样:
Dim lDiff As Long
Dim pageArray As Variant
Dim sFormat As String
Dim i As Long, j As Long
'if a certain difference value, use
lDiff = Worksheets("Inputs").Range("D7").Value - Worksheets("Inputs").Range("D6").Value
ReDim pageArray(1 To (lDiff + 1) * 3)
For i = 1 To UBound(pageArray, 1) Step 3
j = j + 1
If j < 100 Then sFormat = "00" Else sFormat = "000"
pageArray(i) = "schedule" & Format(j, sFormat)
pageArray(i + 1) = "report" & Format(j, sFormat)
pageArray(i + 2) = "p&l" & Format(j, sFormat)
MsgBox pageArray(i)
Next i
https://stackoverflow.com/questions/55616734
复制相似问题