Re: [算表] 一個儲存格裡的不同行資料(VBA)

看板Office作者 (windknife18)時間14年前 (2012/05/04 18:08), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
VBA 版看看對不對囉 ... Option Explicit Sub Macro1() Dim i As Integer Dim rCount As Integer Dim flag, flag2 As Integer Dim bufStr As String Dim cellStr As String flag = 1 Application.ScreenUpdating = False With ThisWorkbook.Sheets(1) '計算多少筆資料 rCount = .Cells(.Rows.Count, 1).End(xlUp).Row For i = 1 To rCount 'MsgBox (.Cells(i, 1).Value) cellStr = .Cells(i, 1).Value flag2 = InStr(flag, cellStr, Chr(10)) While flag2 > 0 If IsNumeric(Mid(cellStr, flag2 + 1, 3)) And _ Mid(cellStr, flag2 + 4, 1) = " " And _ (IsNumeric(Mid(cellStr, flag2 + 5, 2)) Or _ Mid(cellStr, flag2 + 5, 2) = " ") And _ Mid(cellStr, flag2 + 7, 1) = " " And _ Mid(cellStr, flag2 + 8, 2) <> "|a" _ Then bufStr = bufStr & Mid(cellStr, flag, flag2-flag+8) & "|a" flag = flag2 + 8 Else bufStr = bufStr & Mid(cellStr, flag, flag2 - flag + 1) flag = flag2 + 1 End If flag2 = InStr(flag, cellStr, Chr(10)) Wend bufStr = bufStr & Mid(cellStr, flag) .Cells(i, 1).Value = bufStr Next i End With Sheets(1).Select Cells(1, 1).Select Application.ScreenUpdating = True MsgBox ("成功") End Sub ※ 引述《sleepwu (狼狽比失去難受)》之銘言: : 軟體:Excel : 版本:2007 : 手上有一些資料需要處理 是書的編目檔 : 但是遇到一個問題 : 要如何處理同一儲存格裡的不同行資訊 : 例如 : A1裡的資訊是: : LEADER 00000cmm0 2200241 450 : 001 1453173 : 008 : 010 0 |b一套:精裝|d新臺幣6750元 : 090 (nbi)b57265045 : 100 20020807f2001 z y0chiy09 e : 101 1 chi|ceng : 102 tw : 105 y z 000ay : 200 1 哈利波特|h1|e神秘的魔法石|fJ. K. 羅琳(J. K. Rowling)著 : |g彭倩文譯 : 204 0 [點字書] : 210 [臺北縣淡水鎮]|c淡江大學盲生資源中心|d[民90] : 215 0 5冊(活頁)|d29公分 : 517 1 神秘的魔法石|zchi : 681 873.57|b6014 : 700 1 羅琳|c(Rowling, J. K.) : 702 1 彭|b倩文 : 770 1 Rowling|bJ. K : 801 0 tw|b高雄市立圖書館|c20020807|gCCR : 805 KML|cKML1049531kml|lv.1:1|d873.57|e6014|pBB|tCCL|v增訂七版 : |w10|x10|z681 : 這是同一格裡的資料 : 我想要讓Excel判斷每一行的第8字元沒有出現"|a"時就自動補上 : 像是讓 : 702 1 彭|b倩文 : 變成 : 702 1 |a彭|b倩文 : 由於前八個字元不論是數字還是空格皆是有規定的 也會因書不同而不同 : 所以無法用推文的大大所說的用取代的方式 : 如果一個儲存格只有一行的話我還會做 : 但現在一個儲存格裡有很多行,行數也不固定,也不要拆做很多儲存格 : 我試著讓他抓char(10)後的第9字元,但由於行數不固定,所以也不知道要抓幾次 : 請問還有甚麼方法嗎? : 可以的話盡量別用VBA,因為我看不懂@@ : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.131.84.78

05/04 18:34, , 1F
挖 秒殺解決 請受我一拜m_ _m 感激不盡
05/04 18:34, 1F
※ 編輯: windknife18 來自: 122.116.146.144 (05/04 19:49)

05/04 19:50, , 2F
哈! 剛趕著去吃飯, 有兩個小地方沒有改到說...
05/04 19:50, 2F
※ 編輯: windknife18 來自: 122.116.146.144 (05/04 19:59) ※ 編輯: windknife18 來自: 140.131.84.78 (05/14 15:28)
文章代碼(AID): #1Fewg7VS (Office)
文章代碼(AID): #1Fewg7VS (Office)