我是在Excel中制作宏的新手!
我试图使用一个单元格中的值作为我的数组的输入,但我得到一个"下标超出范围"问题。
Sub Macro1()
MyValue = ActiveSheet.Range("A1")
ThisWorkbook.Sheets(Array(MyValue)).Select
End Sub
A1 = 1,2,4处的值,对应于可用的工作表。顺便把价值放在一边就像魅力一样。
由于
答案 0 :(得分:0)
我认为这就是你要找的东西。
Sub print_sheets()
MyValue = ActiveSheet.Range("A1").Value
MyArr = Split(MyValue, ",")
For Each Value In MyArr
ThisWorkbook.Sheets(CInt(Value)).Activate
' Change the directory below
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\<<<USER>>>>\Documents\" & Value & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Next Value
End Sub
这会读取A1并将其拆分。激活纸张并打印在纸上。 我不能用pdf打印它们,除非我知道该怎么称呼床单。 编辑:我使用sheetnumber作为文件的名称保存它们。
答案 1 :(得分:0)
我希望我理解你的帖子,试试下面的代码并告诉我这是不是你的意思。
将可选参数添加到False
允许选择扩展到多个工作表。
Option Explicit
Sub Macro1()
Dim MyValue
Dim i As Integer
MyValue = Split(ActiveSheet.Range("A1"), ",")
For i = 0 To UBound(MyValue)
ThisWorkbook.Sheets(CInt(MyValue(i))).Select (False)
Next i
End Sub