返回列表 上一主題 發帖

[發問] 外包人力工作紀錄 新手發問!

回復 4# lager.master
依你檔案中總表的欄位做的:
  1. Sub bb()
  2.   Dim iCol%
  3.   Dim lRow&, lSRow&, lTRow&(0 To 1)
  4.   Dim bComp As Boolean
  5.   Dim rTar As Range
  6.   Dim wsTar As Worksheet, wsSou As Worksheet
  7.   
  8.   Set wsTar = Sheets("總表")
  9.   With Sheets("成員")
  10.     lRow = 2
  11.     lTRow(0) = 4
  12.     lTRow(1) = 4
  13.     Do While .Cells(lRow, 1) <> ""
  14.       lSRow = 6
  15.       Set wsSou = Sheets(CStr(.Cells(lRow, 1)))
  16.       bComp = .Cells(lRow, 2) = "TT科技"
  17.       iCol = bComp * -8
  18.       With wsTar
  19.          Do While wsSou.Cells(lSRow, iCol + 2) <> ""
  20.            With .Cells(lTRow(bComp + 1), iCol + 2)
  21.              .Value = wsSou.[E2] ' 廠商
  22.              .HorizontalAlignment = xlCenter
  23.            End With
  24.              With .Cells(lTRow(bComp + 1), iCol + 3)
  25.              .Value = wsSou.[C2] ' 姓名
  26.              .HorizontalAlignment = xlCenter
  27.            End With
  28.            With .Cells(lTRow(bComp + 1), iCol + 4)
  29.              .Value = wsSou.Cells(lSRow, 2) ' 工作日期
  30.              .NumberFormat = "m""月""d""日"";@"
  31.            End With
  32.            .Cells(lTRow(bComp + 1), iCol + 5) = CDate(wsSou.Cells(lSRow, 3)) & " ~ " & CDate(wsSou.Cells(lSRow, 4)) ' 執行時間
  33.            .Cells(lTRow(bComp + 1), iCol + 6) = wsSou.Cells(lSRow, 5) ' 工作代碼
  34.            .Cells(lTRow(bComp + 1), iCol + 7) = wsSou.Cells(lSRow, 6) ' 數量
  35.            .Cells(lTRow(bComp + 1), iCol + 8) = wsSou.Cells(lSRow, 7) ' 工作內容
  36.            lSRow = lSRow + 1
  37.            lTRow(bComp + 1) = lTRow(bComp + 1) + 1
  38.          Loop
  39.       End With
  40.       lRow = lRow + 1
  41.     Loop
  42.   End With
  43. End Sub
複製代碼
基本上我設計程式的做法如下供你參考:
1. 先確定標的工作表 : 長官要看的是哪些資料, 需要做出怎樣的表格或圖形, 以決定 總表 需要有的資料與圖形可先試做個母版出來.
2. 確定資料來源與方式 : 資料是從 電腦報表 還是 人工輸入 來的? 要怎麼抓資料? 是否需要中繼表格來存放資料?(也就是先抓資料到中繼表格暫存,最後再抓到或經過計算到總表中)
3. 從資料來源製作中繼工作表(可做 筆數較少但須具代表性 的測試資料, 或是實際取得的來源資料).
4. 實作程式確定依據資料來源與方式是否能實作出來標的工作表? 若有疑慮是否需要調整  來源資料取得方式, 或是 標的工作表格式.
5. 檢視試作出來的標的表格資料是否正確, 呈閱長官範例標的表格是否符合長官預期?(呈閱前務必確認資料正確, 且應有較大幅度變動, 或是長官指示的階段異動項目都實現後再呈閱)
6. 持續步驟3 與 5 直至程式完成.

有幾個重點需要留意的:
1. 做出來的表格是長官要看的, 長官也有可能在檢視時又要求修改標的表格呈現方式, 所以這個互動很重要.
2. 來源資料不正確就做不出來正確的標的表格, 人工輸入有可能會出現格式錯誤或是輸錯內容的情形, 是否需要驗證?如何驗證?
公司的電腦報表也可能會更新, 資料抓取判斷的方式可能需要有彈性.
3. 儘量將重複的工作或程式碼做成 SUB 副程式(需變動的資料參數)  的方式來呼叫,
較易維護與找問題點.

你所問的問題:
1:由於外包有兩間公司. 放在同一個地方是否OK .還是得分頁
分不分頁有好有壞, 不分頁容易抓資料(因為都在同個工作表上), 分頁則較易管理與不容易爆表,
另外若人工輸入, 則分頁(甚至分檔)可以各人輸各人的資料, 避免看到其他人的資料.
還有也要看你有沒有其他的的需求, 是不是有其他的表格需要用到這些資料? 若有, 資料應怎樣呈現較易共用.
還要考慮資料是會異動且持續增加的, 要如何實作出增加, 刪除, 修改 內容, 是架構構建時就需要考慮的問題.

2:每天工作項目很多.但總表只需要抓每天每個人的效益比.該怎麼抓呢. 外包商總共有10人(10張工作表).是否有辦法自己抓資料到總表
你可以試著參照上述程式修改看看.

TOP

目前已經做出個半成品.由於檔案在公司明天才拿的到檔案 >_<
...
自動抓所有分頁的還沒搞出來
...
lager.master 發表於 2014-8-31 11:17
  1.   Dim vA
  2.   For Each vA In Worksheets
  3.     If vA.Name Like "*分析*" Then
  4.       With Va ' 遍歷每個名稱比對符合 *分析* (即所有名稱中包含 分析 兩個字)所找到的工作表
  5.         針對找到的工作表需要處理的內容
  6.       End With
  7.     End If
  8.   Next
複製代碼
樞紐分析表也是我的弱項,
且我也沒有裝 2010 版以上的 Excel,
暫時幫不了你.

TOP

        靜思自在 : 並非有錢魷是快樂,問心無愧心最安。
返回列表 上一主題