作者sendohandy (腦殘眼殘的老師)
看板Office
標題[算表] 用VBA合併多個儲存格
時間Wed Oct 10 19:14:13 2012
軟體:excel,版本:2003
小弟有數十個檔案如下:
座號 姓名 01 02 03 04 05
01 xxx A A B D C
02 xxx D B B A
.
.
40 xxx D B C K D
需要將檔案輸出為txt檔,把ABCD→1234,空格和非ABCD→9,並取消姓名欄位
也就是如下的TXT檔
01 11243
02 42921
.
.
40 42394
=======================================================================
小弟自己是先刪掉姓名欄,用另存新檔和取代慢慢做,但是這樣也要做個數十次
重點是其他長輩電腦能力不足,所以想寫個程式直接完成上述工作。
網路上有前輩寫了巨集,但是因為他的EXCEL檔長這樣
座號 姓名 答案
01 xxx AABDC
02 xxx DB BA
.
.
40 xxx DBCKD
所以我無法一次指定答案欄位
===========================以下是他寫的巨集摘要===========================
'要輸入座號欄位、學生答案欄位、第一筆資料起始欄位 100分的人的橫欄
queNum = Application.InputBox("請輸入題目數量", "輸入", 50, 60, 30)
For i = 1 To 1000
numArr(i - 1) = Cells(i, 1)
ansArr(i - 1) = Cells(i, 3) 想請問這邊怎麼改?
ansArr(i - 1) = Trim(ansArr(i - 1)) '把有空白的變成空的
'非ABCD的都換成9
'把ABCD換成1234
'==========新增工作表==========
oldname = ActiveSheet.Name
newname = ActiveSheet.Name & "_" & Worksheets.Count
Worksheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = newname
'============================
'設定儲存格格式為文字
'貼資料到儲存格
For i = 1 To UBound(ansArr)
If ansArr(i) <> "" Then
Cells(i, 1) = numArr(i) & " " & ansArr(i)
End If
Next
'新增資料表並存在文字檔 input.txt
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.227.114.130
→ sendohandy:感謝您,不過我執行巨集沒有任何變化 10/11 07:53
→ sendohandy:我研究一下VBA內容再看看,謝謝~ 10/11 07:53