廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 7011 個閱讀者
 
發表文章
  可列印版   加為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.062279 second(s),query:15 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言