標題:
[發問]
請教vba ---- sheet1顯示各sheet部分欄位資訊
[打印本頁]
作者:
smallpoper
時間:
2014-4-13 10:54
標題:
請教vba ---- sheet1顯示各sheet部分欄位資訊
請問一下 , 如果我有n個sheet而sheet(2)~sheets(n)的部分欄位資訊要顯示在sheet(1)...(資料如附件)
語法要怎麼寫
[attach]18001[/attach]
作者:
GBKEE
時間:
2014-4-13 15:39
回復
1#
smallpoper
Option Explicit
Sub Ex()
Dim Ar(4) '陣列的索引值 0-4
With Sheets("Summary").[A8:J30]
.Cells = "" '範圍的Cell
For i = 2 To Sheets.Count '活頁簿上Summary這工作排在第一個,依序讀取後面的工作表
With Sheets(i)
Ar = Array(.[B4], Split(.[B8], "#")(0), .[H5], .[E4], UBound(Split(.[E4], ",")) + 1)
'需要的資料置於 陣列中
End With
.Cells(i - 1, 1).Resize(, 5) = Ar '[A8:J30].Cells(列號1, 欄號)
'Resize(列數,欄數) (將原本範圍擴大 )
Next
End With
End Sub
複製代碼
作者:
smallpoper
時間:
2014-4-13 18:19
回復
2#
GBKEE
請問這段代碼是什麼意思
Ar = Array(.[B4], Split(.[B8], "#")(0), .[H5], .[E4], UBound(Split(.[E4], ",")) + 1)
作者:
GBKEE
時間:
2014-4-13 19:07
回復
3#
smallpoper
Ar = Array(.[B4], Split(.[B8], "#")(0), .[H5], .[E4], UBound(Split(.[E4], ",")) + 1)
'Split 函數 傳回一個陳列索引從零開始的一維陣列,它包含指定數目的子字串。
'Split(.[B8], "#") 將.[B8]的字串以"#"這字元 分割為一陣列
'UBound 函數 傳回 Long值,表示指定陣列某維最大可使用的陣列索引。
'Split(.[E4], ",") -> 傳回一陣列
'UBound(Split(.[E4], ",")) -> 傳回這陣列可使用的陣列元素索引
Option Base 語法 Option Base {0 | 1}
Option Base 0 '陳述式在模組層次中用來宣告陣列元素索引的預設下限。
'請注意 若預設的下限值為 0,則 Option Base 陳述式是不需要的
'所以UBound(Split(.[E4], ",")) + 1 才是陣列真正的元素個數
複製代碼
作者:
smallpoper
時間:
2014-4-13 20:47
回復
4#
GBKEE
謝謝您的詳解 , 雖然現階段只是入門還不太懂 , 來去研究研究整段代碼 . 再次感謝您:)
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)