ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2793|回复: 7

[求助]将sheet按模板拆分成多个个人工作表sheet?表格不规则

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-9-7 09:33 | 显示全部楼层 |阅读模式

第1个工作表当数据源,第2个工作表当模板,公式就按模板里的把新生成的表放在模板后面,例如

数据源、模板、fk001、fk002……

论坛里的工资例子,好象都是一行对一行的,我这个不是,希望高手能简单写一下,让我学习学习

L46oJh7v.rar (6.31 KB, 下载次数: 63)


[此贴子已经被作者于2007-9-7 11:08:56编辑过]

TA的精华主题

TA的得分主题

发表于 2007-9-7 09:35 | 显示全部楼层
请搜索"工资表“,坛中有大量实例。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-9-7 10:55 | 显示全部楼层

论坛里的工资例子,我下载了几个好象都是一行对一行的对应的或者是查询用的

我刚刚学习VBA,希望高手能简单写一下,指点一下,让我好学习学习

谢谢各位老师了!

TA的精华主题

TA的得分主题

发表于 2007-9-8 02:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

Sub Macro1()
Dim sht, NewSht As Worksheet
Dim myName As String
Dim i As Integer
On Error Resume Next
For i = 2 To Sheet2.[a65536].End(xlUp).Row
myName = Sheet2.Cells(i, 1).Value
Set NewSht = ThisWorkbook.Sheets(myName)

If NewSht Is Nothing Then
Set NewSht = ActiveWorkbook.Sheets.Add
NewSht.Name = myName
Sheet3.Cells.Copy NewSht.[a1]

NewSht.[b3] = Sheet2.Cells(i, 2)
NewSht.[e3] = Sheet2.Cells(i, 3)
NewSht.[b4] = Sheet2.Cells(i, 4)
NewSht.[g3] = Sheet2.Cells(i, 5)
NewSht.[e4] = Sheet2.Cells(i, 6)
NewSht.[g4] = Sheet2.Cells(i, 7)
NewSht.[d5] = Sheet2.Cells(i, 8)
NewSht.[b5] = Sheet2.Cells(i, 9)
NewSht.[f5] = Sheet2.Cells(i, 10)
NewSht.[h5] = Sheet2.Cells(i, 11)

Else

Sheet3.Cells.Copy NewSht.[a1]

NewSht.[b3] = Sheet2.Cells(i, 2)
NewSht.[e3] = Sheet2.Cells(i, 3)
NewSht.[b4] = Sheet2.Cells(i, 4)
NewSht.[g3] = Sheet2.Cells(i, 5)
NewSht.[e4] = Sheet2.Cells(i, 6)
NewSht.[g4] = Sheet2.Cells(i, 7)
NewSht.[d5] = Sheet2.Cells(i, 8)
NewSht.[b5] = Sheet2.Cells(i, 9)
NewSht.[f5] = Sheet2.Cells(i, 10)
NewSht.[h5] = Sheet2.Cells(i, 11)

End If
Next
End Sub

[此贴子已经被作者于2007-9-9 12:22:41编辑过]

TA的精华主题

TA的得分主题

发表于 2009-3-11 18:55 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-3-11 22:08 | 显示全部楼层
Sub addSheet()
    On Error GoTo lab
    With ThisWorkbook
        Set rngname = .Sheets("数据源").Range("a:a")
        Set rngword = .Sheets("数据源").Range("1:1")
        For Each temp In rngname
            If temp.Row <> 1 And temp.Value <> "" Then
                .Sheets("模板").Copy after:=.Sheets(.Sheets.Count)
                .Sheets(.Sheets.Count).Name = temp.Value
                .Sheets(.Sheets.Count).[a65536].Select
                i = 0
                For Each temp2 In rngword
                    If temp2.Value <> "" Then
                        Debug.Print i
                        Set rngtemp = .Sheets(.Sheets.Count).Cells.Find(what:="*" & temp2.Value & "*", lookat:=xlWhole)
                        If Not rngtemp Is Nothing Then
                            rngtemp.Offset(, 1).Value = temp.Offset(, i).Value
                        End If
                    End If
                    i = i + 1
                Next
                .Sheets(.Sheets.Count).[a1].Select
            End If
        Next
    End With
    Exit Sub
lab:
    MsgBox "可能是工作表重名了!请检查。"
    If ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name Like "*模板*" Then
        Application.DisplayAlerts = False
        ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Delete
        Application.DisplayAlerts = True
    End If
   

End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2016-9-14 12:06 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-9-14 15:58 | 显示全部楼层
xmh850216 发表于 2007-9-8 02:01
Sub Macro1()Dim sht, NewSht As WorksheetDim myName As StringDim i As IntegerOn Error Resume NextFor  ...

只建立一个表,不能继续
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 07:43 , Processed in 0.048610 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表