標題:
多sheet報表整理問題
[打印本頁]
作者:
ippo380
時間:
2014-2-26 20:46
標題:
多sheet報表整理問題
請問各位前輩
我有一個excel檔,
裡面有12個不同名稱的sheet(假設1-12),
每個sheet裡面有不同的列位,
但是我要整理的名稱都是相同的,
比方說,每個sheet裡面都有a、b、c、d,4個名稱是我要整理的數值,
所以我想從這12個sheet裡面產出一張表,
欄位是1-12,列位是a、b、c、d。
這樣有辦法做嗎?
作者:
p212
時間:
2014-2-26 22:28
回復
1#
ippo380
可以上傳問題範例檔?
作者:
Hsieh
時間:
2014-2-27 09:54
回復
1#
ippo380
a,b,c,d四個名稱所在的位置是否相同?
建議上傳範例檔案說明
作者:
ippo380
時間:
2014-2-28 01:49
請問一下
如附件所示,
我想要在excel中產生一個新的sheet,
新的sheet裡面利用sheet名稱做為橫列
再利用各sheet內黃色mart的名稱做直列,
然後把對應的數值整理出來。
[attach]17619[/attach]
不知道這樣說明清楚嗎?
謝謝
作者:
ippo380
時間:
2014-2-28 01:53
回復
2#
p212
已上傳檔案,
謝謝
作者:
yen956
時間:
2014-2-28 12:21
本帖最後由 yen956 於 2014-2-28 12:24 編輯
回復
5#
ippo380
本VBA code 在下列條件下, 才能正常運作
1. "新的sheet" 標題列的 名稱, 如 3月、4月、5月等的順序 應與 工作表 的 名稱順序 一致
2, "新的sheet" 欄A的名稱, 如【非正職員工薪資】、【非正職員工薪資】等的順序,
應與 VBA 中
findStr = Array("非正職員工薪資", "正職員工薪資", "c", "d")
的 順序 一致
3. "新的sheet" 欄A的名稱, 如【非正職員工薪資】等前後均不能有空白
如下圖:
測試結果如下:
Option Explicit
Option Base 1
Private Sub 彙整Button_Click()
Dim Sh, newSh As Object
Dim i, j, shcnt As Integer
Dim findStr
Dim findC As Range
Set newSh = ThisWorkbook.Sheets("新的sheet")
findStr = Array("非正職員工薪資", "正職員工薪資", "c", "d")
shcnt = ThisWorkbook.Sheets.Count
For j = 1 To shcnt - 1
Set Sh = Sheets(j)
If Sh.Name <> "新的sheet" Then
For i = 1 To 4
Set findC = Sh.Columns(1).Find( _
What:=findStr(i), _
After:=Sh.[A1], _
LookIn:=xlValues, _
LookAt:=xlWhole)
If Not findC Is Nothing Then
newSh.Cells(i + 1, j + 1).Value = findC.Offset(0, 2)
End If
Next
End If
Next
End Sub
複製代碼
多報表整理.7z
http://www.mediafire.com/download/2vwo28i7wvd59dh/%E5%A4%9A%E5%A0%B1%E8%A1%A8%E6%95%B4%E7%90%86.7z
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)