返回列表 上一主題 發帖

[發問] 按名單及表格範本新增工作表

[發問] 按名單及表格範本新增工作表

老師好,有工作表是"名單", 另有工作表"表格範本", 請問如何用VBA寫出, 按"名單"新加工作表, 工作表名稱是"名單"第1行, 而工作表內容是"表格範本"??

有勞賜教 按名單及表格範本新增工作表.zip (18.14 KB)

多謝指導. 我自己思考了一個方法新增工作表.  但想用FILTER, 用INPUT BOX問要新增那一個部門的工作表, 如輸入ACC, 則只新增ACC的工作表. 這應如何做??? VBA 申請表V5.zip (20.32 KB)
  1. Sub copytosheetok2()

  2. Dim MyCell As Range, MyRange As Range

  3. Set MyRange = Sheets("list").Range("A2")
  4. Set MyRange = Range(MyRange, MyRange.End(xlDown))

  5.     Application.ScreenUpdating = False
  6.     Application.DisplayAlerts = False

  7. For Each MyCell In MyRange
  8.    
  9.    
  10. Sheets("form").Copy After:=Sheets(Sheets.Count) 'Create a new worksheet

  11. Sheets(Sheets.Count).Name = MyCell.Value 'Renames the new worksheets

  12. For i = 3 To Sheets.Count
  13.         With Sheets(i).Range("A1:E7")
  14.                  .Value = .Value
  15.         End With
  16.    
  17.           With Sheets(i).Range("A10:B11")
  18.                  .Value = .Value
  19.         End With
  20.     Next i

  21. Next MyCell
  22.    Application.ScreenUpdating = True
  23.     Application.DisplayAlerts = True


  24. End Sub
複製代碼
回復 2# 准提部林

TOP

回復 3# missbb

可如何加入下列CODE, FILTER後才新增工作表:
Input box : 輸入部門
例如:ACC 或全部
sheets("list").Select
ActiveSheet.Range("$A$1:$Z$1048576").AutoFilter Field:=2, Criteria1:="ACC"
只新增部門是ACC的工作表
.......不懂如何接下去.....

TOP

回復 5# Kubi

但一按HRA只印出一份HRA, 可否按HRA, 所有HRA會印出?

TOP

回復 7# Kubi

有勞赐教

TOP

回復 7# Kubi

你好, 我又試了篩選LIST的部門是HRA, 再COPY 只有部門是HRA的工作表, 但又是全部都COPY出工作表(HRA, ACC) VBA 申請表V1 original (2).zip (22.91 KB) , 請問下列CODE有甚麼欠缺?
Sub copytosheetok3()


Dim Rng As Range        
Dim theRow As Range     
Dim theArea As Range      
    With Sheets("list")      
        Set Rng = .UsedRange   
        Rng.AutoFilter Field:=2, Criteria1:="HRA"     '¿z¿ï
            Set Rng = Rng.Resize(Rng.Rows.Count - 1).Offset(1, 0).SpecialCells(xlCellTypeVisible)
    End With

Dim MyCell As Range, MyRange As Range
Set MyRange = Sheets("list").Range("A2")
Set MyRange = Range(MyRange, MyRange.End(xlDown))

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

For Each MyCell In MyRange
        
Sheets("form").Copy after:=Sheets(Sheets.Count) 'Create a new worksheet

Sheets(Sheets.Count).Name = MyCell.Value 'Renames the new worksheets

For i = 3 To Sheets.Count
        With Sheets(i).Range("A1:E7")
                 .Value = .Value
        End With
   
          With Sheets(i).Range("A10:B11")
                 .Value = .Value
        End With
    Next i

Next MyCell
   Application.ScreenUpdating = True
    Application.DisplayAlerts = True


End Sub

TOP

        靜思自在 : 心中常存善解、包容、感思、知足、惜福。
返回列表 上一主題