ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 请大佬看看VBA能不能实现

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-23 10:49 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
感觉有点难
信息数据来源于数据源表,数据源表中每一行数据需要生成一个sheet。
当信息3等于KAY,则信息5 C6等于2222222,C7等于333333。信息6 D6等于3,D7等于4。信息4 A6 A7相同,
当信息3最后一个字母为 U,则信息5 C6等于444444。信息6 D6等于7
其他情况下,信息5 C6等于1111111。信息6 D6等于7


image.png

模板.zip

18.45 KB, 下载次数: 17

TA的精华主题

TA的得分主题

发表于 2023-5-23 11:19 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-5-23 11:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
看了段相声剧本

TA的精华主题

TA的得分主题

发表于 2023-5-23 11:25 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-5-23 11:49 | 显示全部楼层
没啥技术难度,就是繁琐的判断而已

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-23 12:26 | 显示全部楼层
3190496160 发表于 2023-5-23 11:49
没啥技术难度,就是繁琐的判断而已

大佬方便写一下嘛?

TA的精华主题

TA的得分主题

发表于 2023-5-23 14:40 | 显示全部楼层
试试符合要求吧

模板 - 副本.rar

27.81 KB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2023-5-23 14:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
带按钮的。

模板 - .rar

24.9 KB, 下载次数: 7

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-23 15:02 | 显示全部楼层

您好!非常感谢,有一点就是比如源数据数据条数不固定呢,改如何判断?
比如1~15不固定

TA的精华主题

TA的得分主题

发表于 2023-5-23 15:08 | 显示全部楼层
Sub 批量生成()
Application.ScreenUpdating = False
With Sheets("数据源")
    r = .Cells(Rows.Count, 2).End(xlUp).Row
    ar = .Range("a1:h" & r)
End With
Application.DisplayAlerts = False
For Each sh In Sheets
    If sh.Index > 2 Then
        sh.Delete
    End If
Next sh
Application.DisplayAlerts = True
For i = 2 To UBound(ar)
    If Trim(ar(i, 2)) <> "" Then
        Sheets("模版").Copy after:=Sheets(Sheets.Count)
        With ActiveSheet
            .[a3] = ar(i, 6)
            .[b3] = ar(i, 7)
            .[g3] = ar(i, 8)
            .[a6] = ar(i, 2)
            If Trim(ar(i, 8)) = "KAY" Then
                .[c6] = "2222222"
                .[c7] = "3333333"
                .[d6] = 3
                .[d7] = 4
            ElseIf Right(Trim(ar(i, 8)), 1) = "U" Then
                .[c6] = "444444"
                .[d6] = 7
            Else
                .[c6] = "1111111"
                .[d6] = 7
            End If
            .Name = ar(i, 2)
        End With
    End If
Next i
Application.ScreenUpdating = True
MsgBox "ok!"
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 07:39 , Processed in 0.039267 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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