使用数组指定要打印的工作表

时间:2016-06-30 21:34:07

标签: arrays excel vba export-to-pdf

我有一个工作簿,我想从中选择要导出的某些工作表。 每次都会有所不同,工作表的名称会显示在单元格Y48:Y55中,具体取决于它们是否在上面选择: selected cells and populated list

我想用这个列表来填充一个动态数组,我可以调用它来导出到pdf只有数组中的工作表。

我已经在消息框中看到了vba中的数组,我只是无法将其放入Sheets(数组(myarray)。选择代码的一部分。

如果我手动输入所有值,例如。 sheet(" COVER"," CLASS CHART")。选择它会起作用,但我不知道如何从myarray中获取个别值。

对不起,我不是编码员,但我无法在任何地方找到它。

到目前为止看起来像这样:

    Dim myarray() As String, size As Integer, i As Integer

    size = WorksheetFunction.CountA(Range("y48:y55"))
    ReDim myarray(size)

    For i = 1 To size
        myarray(i) = Cells(i + 47, 25).Value
    Next i
    MsgBox (size)
    MsgBox Join(myarray, vbCrLf)
    Sheets(myarray().Select
    Sheets("COVER").Activate

    answer = MsgBox("Do you want to export to PDF?", vbYesNo + vbQuestion, "Export to PDF")
    If answer = vbYes Then
fileSaveName = Application.GetSaveAsFilename("", fileFilter:="PDF (*.pdf), *.pdf")
        If fileSaveName <> False Then
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF,         Filename:=fileSaveName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
        End If
    End If
    Sheets("REPORT").Select

End Sub

1 个答案:

答案 0 :(得分:0)

不使用Sheets(myarray().Select,而是使用循环:

For i = Lbound(myarray,1) to Ubound(myarray,1)
   Worksheets(myarray(i)).Select False
Next i

错误使得它不会失去以前的选择。