Excel精英培训网

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

[已解决]竖排数据转换为横排

[复制链接]
发表于 2012-11-20 08:13 | 显示全部楼层 |阅读模式
将订阅清单中的数据格式转换为收发清单的形式。 求助.rar (4.9 KB, 下载次数: 21)
发表于 2012-11-20 08:40 | 显示全部楼层
看一下吧。                                         

求助1.rar

3.46 KB, 下载次数: 15

回复

使用道具 举报

发表于 2012-11-20 08:44 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-11-20 09:34 | 显示全部楼层
谢谢两位的关注!我想要VBA的。
回复

使用道具 举报

发表于 2012-11-20 10:13 | 显示全部楼层
wenwen000424 发表于 2012-11-20 09:34
谢谢两位的关注!我想要VBA的。

录制宏啊  复制-选择性粘贴 转置 看宏代码 自己在修改哈啊

回复

使用道具 举报

 楼主| 发表于 2012-11-20 11:44 | 显示全部楼层
我心飞翔410 发表于 2012-11-20 10:13
录制宏啊  复制-选择性粘贴 转置 看宏代码 自己在修改哈啊

录制宏代码不简洁,谢谢关注!
回复

使用道具 举报

发表于 2012-11-21 10:14 | 显示全部楼层    本楼为最佳答案   
1,将源数据按现在格式,复制到结果文件中,工作表命名为  "源数据"
2,将结果工作表,命名为“结果"
当然你可以将上述名称改变,代码中作相应改动

Sub MyTranspose()
Dim Sh As Worksheet
Set Sh = Sheets("源数据")
With Sheets("结果")
   .Range("a4").Resize(.Rows.Count - 3, .Columns.Count).ClearContents
   Sh.Columns("a:b").Sort Sh.Range("a2"), Header:=xlYes
   j = 3

   For i = 2 To Sh.Range("a" & Rows.Count).End(3).Row
     If Sh.Cells(i, 1) <> Sh.Cells(i - 1, 1) Then
       j = j + 1
       col = 1
       .Cells(j, col) = Sh.Cells(i, 1)
     End If
     col = col + 1
     .Cells(j, col) = Sh.Cells(i, 2)
   Next i
End With
End Sub
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 19:02 , Processed in 0.246461 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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