我有一个工作簿,我想从中选择要导出的某些工作表。 每次都会有所不同,工作表的名称会显示在单元格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
答案 0 :(得分:0)
不使用Sheets(myarray().Select
,而是使用循环:
For i = Lbound(myarray,1) to Ubound(myarray,1)
Worksheets(myarray(i)).Select False
Next i
错误使得它不会失去以前的选择。