Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2055|回复: 3

关于VBA行转列问题

[复制链接]
发表于 2019-10-10 15:15 | 显示全部楼层 |阅读模式
各位老师:
              想通过VBA实现将sheet1的加工中心列转换到sheet2的行,然后再下面指定各加工中心和图号,具体模板见sheet2,不会弄了,请各位老师帮下忙

新建Microsoft Excel 工作表 (1).rar

11.86 KB, 下载次数: 12

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2019-10-10 16:40 | 显示全部楼层
本帖最后由 hfwufanhf2006 于 2019-10-10 16:53 编辑

你这就是复制粘贴搞几下就行了,搞什么代码啊。

今天我去excelhome论坛溜达了一圈,也有好多类似简单功能或稀奇古怪需求来求代码的,好像自愿者也不多。大家都上班的,哪有那么多时间给你们做作业?

比如,第一页就有这么个帖子:
哪位老师 请帮我增加一个可以选择的对话窗口!万分感谢
版主的回答:
表格change事件  配合工作表文字框和列表框可以实现这样的需求,;类似的帖子很多,楼主可以自己搜搜看看,以前回过的帖子太多了,
其实他这个要求还不算过分,基本还算是一个技术问题。主要问题是新手的心太高,这类要求就是老手也要费时间,那有那么容易做到?再说excel本来就是一个松散奔放的编辑界面,新手往往喜欢搞成自动化的客户端模式,想太多了,不符合excel的初衷,自然是费力不讨好;

论坛热心人主要是对技术疑难比较热心,比如你要是有某个局部代码不知道如何写,或者是写了无法正确运行,又或者是达不到你想要的目的,这样的话题大家会比较愿意帮忙。一是范围小容易回答,二是局限于技术层面。如果你一行代码也不写,完全是拿来主义,有些还是与工作完全没关系的股票、彩票、摸奖等等这样的问题,谁有时间给你写这个啊,况且会写的也不多,因为平时也不接触,搞不清状况,肯定也写不了。

回复

使用道具 举报

发表于 2019-10-10 16:56 | 显示全部楼层
Sub test()
    Dim A, d, i, x

    Sheets(1).Select
    A = Range("a1").CurrentRegion
    Set d = CreateObject("scripting.dictionary")
    For i = 2 To UBound(A)
        If d.exists(A(i, 1)) = False Then Set d(A(i, 1)) = CreateObject("scripting.dictionary")
        d(A(i, 1))(A(i, 2)) = A(i, 3)
    Next i

    Sheets(3).Select
    Cells = ""
    i = 1
    For Each x In d.keys
        Cells(1, i) = x
        Cells(1, i + 1) = "图号"
        Cells(2, i).Resize(d(x).Count) = Application.Transpose(d(x).keys)
        Cells(2, i + 1).Resize(d(x).Count) = Application.Transpose(d(x).items)
        i = i + 2
    Next

End Sub

回复

使用道具 举报

发表于 2019-10-10 17:16 | 显示全部楼层
顶2楼
个人觉得,有了点基础和规范意识,并有大把时间,才适合使用窗体。
刚开始的小白,真心不建议用窗体去做。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 18:39 , Processed in 0.312012 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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