Board logo

標題: [發問] 資格結入表格VBA [打印本頁]

作者: missbb    時間: 2015-2-3 21:57     標題: 資格結入表格VBA

[attach]20191[/attach]可否用VBA, 將下列資料, 結合入表格內, 自動產生以NAME為名稱的SHEET?


Name        Dept        Post
A        1        Clerk
B        2        Senior Clerk
C        3        Officer

下列為SHEET A, 將NAME,DEPT, POST內容顯示, 並有下列RECORD,IN,OUT, REMARKS的按格:
Name        A                        Post        Clerk
Dept        1                               
                                       
Record        In        Out        Remarks
作者: stillfish00    時間: 2015-2-4 11:29

回復 1# missbb
執行前只有data工作表
  1. Sub Test()
  2.   Dim i As Long, bAlert As Boolean
  3.   Dim sName As String, sDept As String, sPost As String
  4.   Dim wsTemp As Worksheet
  5.   
  6.   '先建立暫時的工作表範本,供之後Copy
  7.   Set wsTemp = Sheets.Add(After:=Sheets(Sheets.Count))
  8.   With wsTemp
  9.     .Cells(1, 1).Value = "Name"
  10.     .Cells(2, 1).Value = "Dept"
  11.     .Cells(1, 5).Value = "Post"
  12.     With .Cells(4, 1)
  13.       .Resize(1, 4).Value = Array("Record", "In", "Out", "Remarks")
  14.       .Resize(5, 4).Borders.LineStyle = xlContinuous
  15.     End With
  16.   End With
  17.   
  18.   '對 data 中項目建立各分頁
  19.   With Sheets("data")
  20.     For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
  21.       sName = .Cells(i, 1).Value
  22.       sDept = .Cells(i, 2).Value
  23.       sPost = .Cells(i, 3).Value

  24.       wsTemp.Copy After:=Sheets(Sheets.Count)
  25.       With Sheets(Sheets.Count)
  26.         .Name = sName
  27.         .Cells(1, 2).Value = sName
  28.         .Cells(2, 2).Value = sDept
  29.         .Cells(1, 6).Value = sPost
  30.       End With
  31.     Next
  32.   End With
  33.   
  34.   bAlert = Application.DisplayAlerts
  35.   Application.DisplayAlerts = False
  36.   wsTemp.Delete
  37.   Application.DisplayAlerts = bAlert
  38.   
  39. End Sub
複製代碼

作者: missbb    時間: 2015-2-5 22:09

回復 2# stillfish00


多謝指導!




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