假設表1的每個儲存格都是人名
且由於是外部資料匯入,排列極為混亂
我可以先用F5把空格刪除,使之向左、向上集中
問題來了:請問我該如何把所有的儲存格內容
轉到另一個工作表的同一欄內
舉個簡單說明(實際情況麻煩得多)
A1、A2、B1、C1、C2、C3都有資料
我要把他們都複製到另一工作表的同一欄,以進行後續分析
該怎麼作呢,請大家幫忙思考
謝謝
2007-03-23 13:05:35 · 3 個解答 · 發問者 基哥 5 in 電腦與網際網路 ➔ 軟體
這不是回答, 意見額度用完了
不必...先用F5把空格刪除
保持原狀即可
請將下面程式碼複製到VBE一個一般模組, 執行 一下看看
'此程式碼將一個工作表凌亂的資料通通放到一個新工作表的A欄
'執行此程式前請將作用工作表移到凌亂資料的工作表
Sub toAcol()
Dim newSht As Worksheet '新工作表
Dim Rng As Range '區域範圍索引
Dim allDat As Range '所有資料區域
Dim pt As Range '存放儲存格指標
Dim i As Long '迴圈索引
'將作用中的工作表有資料的都選起來, 這裡指選常數資料, 公式資料不選喔.
Set allDat = ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
'新增一張工作表
Set newSht = Worksheets.Add
'設定開始放資料的儲存格
Set pt = newSht.Range("a1")
'遍歷剛剛所選定資料各區域
For Each Rng In allDat.Areas
'將此區域每一個儲存格資料放到新工作表A欄
For i = 1 To Rng.Cells.Count
'給值
pt = Rng.Cells(i)
'下移一格
Set pt = pt.Offset(1, 0)
Next
Next
'給新工作表一個新表名
newSht.Name = "newSht" & Worksheets.Count
End Sub
2007-03-23 14:19:46 · answer #1 · answered by crdotlin 5 · 0⤊ 0⤋
APPLEROT, 真漂亮! 這是新的喔! VERY GOOD!
2007-03-23 15:03:21 · answer #2 · answered by Frank Chiou 7 · 0⤊ 0⤋
先定義A欄資料為AA
B欄資料為BB
C欄資料為CC
AA=OFFSET(Sheet1!$A$1,,,COUNTA(Sheet1!$A:$A))
BB=OFFSET(Sheet1!$B$1,,,COUNTA(Sheet1!$B:$B))
CC=OFFSET(Sheet1!$C$1,,,COUNTA(Sheet1!$C:$C))
Sheet2!A1{=IF(COUNTA(AA)>=ROW(),INDEX(Sheet1!A:A,SMALL(ROW(AA),ROW())),IF((COUNTA(BB)+COUNTA(AA))>=ROW(),INDEX(Sheet1!B:B,SMALL(ROW(BB),ROW()-COUNTA(AA))),IF((COUNTA(CC)+COUNTA(BB)+COUNTA(AA))>=ROW(),INDEX(Sheet1!C:C,SMALL(ROW(CC),ROW()-COUNTA(AA)-COUNTA(BB))),"")))}
陣列公式;式子很長直接複製公式A1按Ctrl+Shift+Enter再下拉公式完成
2007-03-23 14:10:38 · answer #3 · answered by 顯栓 7 · 0⤊ 0⤋