Board logo

標題: 如何拆解個人薪資 [打印本頁]

作者: jsc0518    時間: 2017-6-15 12:47     標題: 如何拆解個人薪資

各位先進大家好,
1.原本薪資都在同一個EXCEL工作表中,我想要依個人名字拆分成個別的檔案
   ex : 張三.xlsx    李日.xlsx   王五.xlsx ......

2.但是我碰到的是一個人員就有4列的資訊
[attach]27338[/attach]

3.想請教VBA該如何撰寫(之前有找過網路,他是個人資訊僅一列,所以可以拆。但我的現況是個人資訊有4列)
[attach]27339[/attach]

再請大家幫幫忙。
作者: Hsieh    時間: 2017-6-16 14:53

  1. Sub save_out()
  2. Dim a As Range
  3. With 工作表1
  4.    Set Rng = .Range("A3").Resize(2, 35)
  5.    For Each a In .Columns("A:A").SpecialCells(xlCellTypeConstants, 1)
  6.    f = a.Offset(, 1)
  7.    If f = "" Then GoTo 10
  8.    With Sheets.Add
  9.       Rng.Copy .[A3]
  10.       a.Resize(4, 35).Copy .[A5]
  11.       .Move
  12.      With ActiveWorkbook
  13.         .SaveAs "D:\" & f & ".xlsx"
  14.         .Close
  15.      End With
  16.     End With
  17. 10
  18.    Next
  19. End With
  20.      
  21. End Sub
複製代碼

作者: jsc0518    時間: 2017-6-17 10:34

回復 2# Hsieh
Hi Hsieh
感謝您的回覆,在執行VBA過程中有出現錯誤訊息,是否可以教島一下該如何處理呢?
謝謝您!
[attach]27348[/attach]
作者: ML089    時間: 2017-6-18 18:09

回復 3# jsc0518

我是WIN7-64 及 OFFICE2007-32,原來執行也是有問題,後來更新電腦系統後就可以正常執行了。

更新檔案為 Microsoft .NET Framework 4.7
作者: ML089    時間: 2017-6-18 18:35

回復 1# jsc0518
  1. Sub 每人資料另存新檔()
  2.     Dim x表頭區 As Range, x資料區 As Range
  3.     Dim xWB As Workbook, xWS As Worksheet

  4.     Set xWS = ThisWorkbook.Sheets("Sheet1")
  5.     Set x表頭區 = xWS.Range("A3:AI4")
  6.     Set x資料區 = xWS.Range("A5:AI8")

  7.     Application.DisplayAlerts = False '停止系統的警示 - 是否覆蓋舊檔
  8.     Do While x資料區(1, 1) <> ""
  9.         With Workbooks.Add
  10.             x表頭區.Copy .Sheets(1).Range("A3")
  11.             x資料區.Copy .Sheets(1).Range("A5")
  12.             .SaveAs "D:\" & x資料區(1, 2) & ".xlsx"
  13.             .Close
  14.         End With
  15.         Set x資料區 = x資料區.Offset(4)
  16.     Loop
  17.     Application.DisplayAlerts = True '恢復系統的警示

  18. End Sub
複製代碼

作者: jsc0518    時間: 2017-6-19 18:28

回復 5# ML089

真的很感謝你的幫忙,謝謝你的回覆。讓我解決了一大困擾




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)