2016-11-17 72 views
-1

對於在Excel中製作宏,我完全陌生!如何將一個單元格值作爲一個數組的變量

我試圖使用一個單元格的值作爲我的數組的輸入,但我得到一個「下標超出範圍」的問題。

Sub Macro1() 

MyValue = ActiveSheet.Range("A1") 

ThisWorkbook.Sheets(Array(MyValue)).Select 

End Sub 

A1 = 1,2,4的值對應於可用表單。順便把價值直接作爲魅力。

謝謝

+0

是'MyValue'你的數組? –

+0

MyValue的值是「1,2,4」應該是數組 –

+0

所以你希望你的數組是'MyValue(0)= 1','MyValue(1)= 2'和'MyValue(2)= 4 '?你想選擇哪個工作表?你想循環所有的人嗎? –

回答

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 
+0

宏正在運行,沒有錯誤,所以很好!但是隻選擇了第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作爲文件的名稱。

enter image description here

+0

如果我使用Split函數,則會出現類型不匹配的錯誤! –

+0

不知道這是否是我的錯誤在這裏..我看到我留下的代碼範圍(「I1」)而不是A1。但除此之外,它應該工作,除非有別的事情你不告訴我們。將代碼編輯到A1。如果那是問題。 – Andreas

+0

這是我現在的代碼,也許我錯過了一些東西。就像我說過的,對這個完全陌生! –

相關問題