【求看】EXCEL用VBA实现行列转换!!!急

anniking 2014-05-23 02:38:41


请教:EXCEL如何将横向排列转化为纵向排列?
如:张三 李四 王五
10 15 28
A B C
转化为:
张三 10 A
李四 15 B
王五 28 C

因数据量比较大,希望给个有按钮的VBA,谢谢!
我不要转置之类的回复,在此一鞠躬
...全文
2288 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
laoyebin 2014-07-23
  • 打赏
  • 举报
回复
usedrang定位就行,然后转置
anniking 2014-07-09
  • 打赏
  • 举报
回复
引用 5 楼 xxfvba 的回复:
导入到数据库中,用SQL写
每一组数据记录都很多,用导入的办法不可行的也
xxfvba 2014-07-07
  • 打赏
  • 举报
回复
导入到数据库中,用SQL写
anniking 2014-05-26
  • 打赏
  • 举报
回复
引用 1 楼 save4me 的回复:
为什么嫌弃Transpose呢?是觉得速度慢吗?


Option Explicit

Sub 行列转换()
Dim sourceRange As Range
Dim targetRange As Range

Set sourceRange = ActiveSheet.Range(Cells(1, 1), Cells(3, 3))
Set targetRange = ActiveSheet.Cells(6, 1)

sourceRange.Copy
targetRange.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End Sub




如图,我有无数的数据,行列都是变量,现在“说明:60%”和“学生考核”这一行不要,其他提取转置到sheet4里面怎么写代码?
anniking 2014-05-26
  • 打赏
  • 举报
回复
引用 1 楼 save4me 的回复:
为什么嫌弃Transpose呢?是觉得速度慢吗?

Option Explicit

Sub 行列转换()
  Dim sourceRange As Range
  Dim targetRange As Range

  Set sourceRange = ActiveSheet.Range(Cells(1, 1), Cells(3, 3))
  Set targetRange = ActiveSheet.Cells(6, 1)

  sourceRange.Copy
  targetRange.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End Sub
是嫌慢了
save4me 2014-05-24
  • 打赏
  • 举报
回复 1
为什么嫌弃Transpose呢?是觉得速度慢吗?

Option Explicit

Sub 行列转换()
  Dim sourceRange As Range
  Dim targetRange As Range

  Set sourceRange = ActiveSheet.Range(Cells(1, 1), Cells(3, 3))
  Set targetRange = ActiveSheet.Cells(6, 1)

  sourceRange.Copy
  targetRange.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End Sub

6,216

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office应用
社区管理员
  • Microsoft Office应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧