ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

   
EH云课堂-专业的职场技能充电站 永久免费,网表让Excel秒变数据库 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel函数公式学习大典 高效办公必会的Office实战技巧 免费下载Excel行业应用视频
300集Office 2010微视频教程 Tableau-数据可视化工具 ExcelHome出品 - VBA代码宝免费下载 13门Excel免费公开课任你学
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 免费的Excel考勤计算系统
查看: 291|回复: 6

[求助] 求竖排版改为横向排版的方法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-3-14 00:00 | 显示全部楼层 |阅读模式
数据有好几百个,原来是竖排版。现在需要改为横向排版。有什么简单的方法吗?
无标题.png

求助.rar

6.94 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2018-3-14 07:18 | 显示全部楼层
这个论坛里有不少案例,楼主自己先搜索下吧
使用字典保存位置,然后往后拷贝即可

TA的精华主题

TA的得分主题

发表于 2018-3-14 08:39 | 显示全部楼层
  1. Sub vv()
  2.     Dim arr, brr()
  3.     arr = Sheet1.[a1].CurrentRegion
  4.     ReDim brr(1 To UBound(arr), 1 To 30)
  5.     Set d = CreateObject("scripting.dictionary")
  6.     Set d1 = CreateObject("scripting.dictionary")
  7.     For i = 2 To UBound(arr)
  8.         If Not d.exists(arr(i, 1)) Then
  9.             k = k + 1
  10.             d(arr(i, 1)) = k
  11.             d1(arr(i, 1)) = 0
  12.             For j = 1 To 4
  13.                 brr(k, j) = arr(i, j)
  14.             Next
  15.         Else
  16.             r = d(arr(i, 1))
  17.             d1(arr(i, 1)) = d1(arr(i, 1)) + 3
  18.             c = d1(arr(i, 1))
  19.             For j = 2 To 4
  20.                 brr(r, j + c) = arr(i, j)
  21.             Next
  22.         End If
  23.     Next
  24.     imax = Application.Max(d1.items) + 4
  25.     Sheet1.[g2].Resize(k, imax).ClearContents
  26.     Sheet1.[g2].Resize(k, imax) = brr
  27. End Sub
复制代码

评分

参与人数 1鲜花 +1 收起 理由
cove + 1 感谢帮助

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-3-14 08:40 | 显示全部楼层
求助.zip (19.15 KB, 下载次数: 5)

评分

参与人数 1鲜花 +1 收起 理由
cove + 1 感谢帮助

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-3-14 09:28 | 显示全部楼层
一个字典的试试看!

Test_求助.zip

17.99 KB, 下载次数: 8

评分

参与人数 2鲜花 +3 收起 理由
cove + 1 感谢帮助
abc123281 + 2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-3-14 10:27 | 显示全部楼层
公式做的。

求助 (2).rar

8.82 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2018-3-14 10:31 | 显示全部楼层
本帖最后由 jiangxiaoyun 于 2018-3-14 10:34 编辑
  1. Sub vv()
  2.     Dim arr, brr()
  3.     arr = Sheet1.[a1].CurrentRegion
  4.     ReDim brr(1 To UBound(arr), 1 To 30)
  5.     Set d = CreateObject("scripting.dictionary")
  6.     For i = 2 To UBound(arr)
  7.         If Not d.exists(arr(i, 1)) Then
  8.             k = k + 1
  9.             d(arr(i, 1)) = k
  10.             d(arr(i, 1) & "@") = 0
  11.             For j = 1 To 4
  12.                 brr(k, j) = arr(i, j)
  13.             Next
  14.         Else
  15.             r = d(arr(i, 1))
  16.             d(arr(i, 1) & "@") = d(arr(i, 1) & "@") + 3
  17.             c = d(arr(i, 1) & "@")
  18.             For j = 2 To 4
  19.                 brr(r, j + c) = arr(i, j)
  20.             Next
  21.         End If
  22.     Next
  23.    
  24.     Sheet1.[g2].Resize(k, 30).ClearContents
  25.     Sheet1.[g2].Resize(k, 30) = brr
  26. End Sub
复制代码

一个字典就一个吧

求助.zip (19.12 KB, 下载次数: 5)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,高效办公专列,每天发车

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

GMT+8, 2018-12-19 22:23 , Processed in 0.097034 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Wooffice Inc.

   

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

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

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