广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 7029 个阅读者
 
发表文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
casper
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x14
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[晴天][快乐] Excel 栏列互换
昨日同事在为excel中栏和列的资料刚好和他所须要的相反而伤脑筋,看他每一笔资料慢慢的复制贴上,土法炼钢,非常的痛苦,立即帮他写了一个程式,结果他花半小时还没完成的工作,只需几秒钟就完成了,会程式真的好好!
回家后把程式稍微修改如下:

先建立一个CommandButton (栏列转换)
Private Sub CommandButton1_Click()
UserForm1.Show vbModeless
End Sub
CommandButton
再建立一个UserForm
Private Sub CommandButton1_Click()
Call 栏列互换
End
End Sub

Private Sub CommandButton2_Click()
Unload UserForm1
End
End Sub
userform

再插入模组,程式如下
Sub 栏列互换()
'
' Casper 录制的巨集
Dim Col3 As Integer
Set WS1 = Worksheets("转换前") '工作表名称
Set WS2 = Worksheets("转换后")   '工作表名称
WS2.Select
Cells.Select   '把WS2(转换后工作表)内容清除
Selection.Delete Shift:=xlUp

Row1 = UserForm1.TextBox1.Text
Col1 = UserForm1.TextBox2.Text

If Row1 > 1 And Row1 < 256 And Col1 > 1 And Col1 < 256 Then '设定条件,让栏列最大只到256栏或列,以免程式跑太久
For i = 1 To Col1
For j = 1 To Row1
WS1.Cells(i, j).Copy Destination:=WS2.Cells(j, i)
Next j
Next i
Cells(1, 1).Select
Else
MsgBox "输入错误"   '输入栏列超过256或非数字字元则出现"输入错误"
WS1.Select
Cells(1, 1).Select
End If
End Sub

转换前
转换前

转换后
转换后


补充:
感谢tuberose提供了更简单的方法
直接复制,然后再到另一个空白处选择"选择性贴上",,跳出一个视窗
把转置打勾即可。


[ 此文章被casper在2007-10-08 03:01重新编辑 ]



献花 x1 回到顶端 [楼 主] From:台湾新世纪资通股份有限公司 | Posted:2007-10-04 06:36 |

首页  发表文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.054061 second(s),query:15 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言