首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 办公应用 > OFFICE教程 >

焦急万分,百分求教!Excel自动生成报表有关问题

2012-01-19 
焦急万分,百分求教!Excel自动生成报表问题!老板急催,饭碗不稳!请问如何根据现有的excel总表,自动生成明细

焦急万分,百分求教!Excel自动生成报表问题!
老板急催,饭碗不稳!
请问如何根据现有的excel总表,自动生成明细表?
比如,现有一张excel表:
  序号 姓名 年龄 工资
  1 张三 33 4000
  2 李四 34 5000
  3 王五 35 6000
  ...

需要将每行的数据依次生成在一张excel的多个sheet中,而且自动将sheet1改为姓名,即每人一个sheet表格

第一个sheet表为

姓名:张三  
年龄:33
工资:4000
张三(sheet1)


第二个sheet表为

姓名:李四 
年龄:34
工资:5000
李四(sheet2)

...
后面依次类推,如何转化啊?在线等高手援助,谢谢!

[解决办法]
先用一个循环去读取数据,然后新建表,进行表名命名就可以了,具体可用以下方法:先在SHEET1中判断力数据有多少行,然后建立一个循环读取,再新建表,例如:
Option Explicit

Sub test()
Dim i As Long
Dim j As Long
Dim K As String

Worksheets("sheet1").Select
i = Cells(1, 1).CurrentRegion.Rows.Count
For j = 2 To i
K = Worksheets("sheet1").Range("B" & j).Value
Worksheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = K
Worksheets("" & K).Range("A1").Value = "姓名"
Worksheets("" & K).Range("A2").Value = "年龄"
Worksheets("" & K).Range("A3").Value = "工资"
Worksheets("" & K).Range("B1").Value = Worksheets("sheet1").Range("B" & j).Value
Worksheets("" & K).Range("B2").Value = Worksheets("sheet1").Range("C" & j).Value
Worksheets("" & K).Range("B3").Value = Worksheets("sheet1").Range("D" & j).Value


Next
ActiveWorkbook.Save
End Sub

[解决办法]

VB code
Sub test()    Dim i&, k%, arr(1 To 3, 1 To 2), temp    Application.ScreenUpdating = False    Application.DisplayAlerts = False    temp = Sheet1.[a1].CurrentRegion    For i = 2 To UBound(temp)        Sheets.Add after:=Sheets(Sheets.Count)        With ActiveSheet            .Name = temp(i, 2)            .[a1] = "公司人员报表"            .[a1:b1].Merge            arr(1, 1) = "姓名"            arr(1, 2) = temp(i, 2)            arr(2, 1) = "年龄"            arr(2, 2) = temp(i, 3)            arr(3, 1) = "工资"            arr(3, 2) = temp(i, 4)            .[a2].Resize(3, 2) = arr            Erase arr        End With    Next    Application.DisplayAlerts = True    Application.ScreenUpdating = TrueEnd Sub 

热点排行