2016-07-28 38 views
0

我的最終結果是:我想以編程方式使用每個選項卡上的特定條件選擇工作簿中的選項卡。我的標籤名稱可能會更改。使用數組元素的Excel/Next

我試過使用表格(數組(tab1,tab2,tabx))。選擇函數通過在數組內作爲變量構建項目,但使用它時收到下標超出範圍錯誤。 我希望答案比我想像的更容易。 謝謝。 這是我與打碼:

Sub SelectTabs() 

Dim intX As Integer 
Dim ws As Worksheet 
Dim intArray() As Integer 
ReDim intArray(1) 

For intX = 6 To 25 
    If ((intX/2) - Int(intX/2) = 0) And intX > 5 And intX < 25 Then 
     Sheets(intX).Select 
     ws_name = Sheets(intX).Name 
     If (Range("Test" & Range("C29").Value & "_01").Value & Range("Test" & Range("C29").Value & "_02").Value & _ 
      Range("Test" & Range("C29").Value & "_03").Value & Range("Test" & Range("C29").Value & "_04").Value & _ 
      Range("Test" & Range("C29").Value & "_05").Value & Range("Test" & Range("C29").Value & "_06").Value) <> "" Then 
      ReDim Preserve intArray(UBound(intArray) + 1) 
      If Tabs = "" Then 
       Tabs = ws_name 
      Else 
       Tabs = Tabs & Chr(34) & "," & Chr(34) & ws_name 
      End If 
      intArray(UBound(intArray)) = intX 
      'intArray(intX) = ws_name 
     End If 
    End If 
Next intX 
Sheets(Array(intArray)).Select 

末次

+0

嘗試'Sheets(intArray).Select' –

回答

0

我剛纔已經回答了類似的問題Excel macro is acting differently on two computers

基本上,你選擇第一個表後,你選擇用。選擇休息替換:= FALSE

Sheets(1).Select True 
Sheets(2).Select False 
Sheets(3).Select False 
.... 

Worksheet.Select Method (Excel) - MSDN - Microsoft

+0

謝謝..但它的進展是困難的。 30張中有10張可供選擇,只有一些應該被選中。 – Richard

+0

啊,我剛剛注意到你在檢查前選擇了每張紙。你可以替換'Sheets(Array(intArray))。選擇'Sheets(Split(Tabs,「」「,」「」))。選擇' – Slai

+0

Perfect Slai,謝謝...我必須閱讀在拆分命令。 – Richard