如何使单元格值成为Array的变量

时间:2016-11-17 08:40:14

标签: arrays excel vba excel-vba

我是在Excel中制作宏的新手!

我试图使用一个单元格中的值作为我的数组的输入,但我得到一个"下标超出范围"问题。

Sub Macro1()

MyValue = ActiveSheet.Range("A1")

ThisWorkbook.Sheets(Array(MyValue)).Select

End Sub

A1 = 1,2,4处的值,对应于可用的工作表。顺便把价值放在一边就像魅力一样。

由于

2 个答案:

答案 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作为文件的名称保存它们。

enter image description here

答案 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