Board logo

標題: [發問] 大筆資料處理~判讀問題 [打印本頁]

作者: super31610    時間: 2014-9-9 10:15     標題: 大筆資料處理~判讀問題

我有一份四萬多筆的資料
我用PDF 複製過來之後
會有一些地址 像第一筆一樣
因為地址過長而跳了一格儲存格
不知道有沒有方法可以判讀 看他是否跳格
然後將地址合在一起 最後巷SHEET3這樣 轉至成橫列的
:L

[attach]19115[/attach]
作者: luhpro    時間: 2014-9-9 23:06

本帖最後由 luhpro 於 2014-9-9 23:07 編輯
我有一份四萬多筆的資料
我用PDF 複製過來之後
會有一些地址 像第一筆一樣
因為地址過長而跳了一格儲存 ...
super31610 發表於 2014-9-9 10:15

因為你的資料量太大了,
且其內容又需要搬移與合併,
所以比較適合用 Excel VBA 來達成,
不宜用儲存格公式來實現.
  1. Sub nn()
  2.   Dim lRows&, lRow&
  3.   Dim iI%
  4.   
  5.   lRow = 1
  6.   Do While Cells(lRow, 1) <> ""
  7.     With Cells(lRow, 1)
  8.       If Mid(.Value, 3, 1) = "市" Or Mid(.Value, 3, 1) = "縣" Then
  9.         If Not IsNumeric(.Offset(1)) Then
  10.           .Value = .Value & .Offset(1)
  11.           .Offset(1).Rows.Delete xlShiftUp
  12.         End If
  13.         For iI = 1 To 3
  14.           .Offset(, iI) = .Offset(1)
  15.           .Offset(1).Rows.Delete xlShiftUp
  16.         Next
  17.       End If
  18.       lRow = lRow + 1
  19.     End With
  20.   Loop
複製代碼
[attach]19125[/attach]
作者: super31610    時間: 2014-9-10 09:45

WOW 太感謝你了
真的是省了我大半天的時間了
不然我用函數下去帶 常常錯誤又很慢
太感恩了
作者: super31610    時間: 2014-9-10 15:07

今天在使用的時候 發現了一些問題
就是 我有一些資料 地址的部分會不完全
可能只有高雄鳳山區 或台北台北區 這樣
不知道 可不可以 用下面 C-3xxx-x 這邊做為判斷
然後下去更改 我有嘗試改了一下你提供的
可是無法成功執行我想要的結果
作者: luhpro    時間: 2014-9-10 23:50

今天在使用的時候 發現了一些問題
就是 我有一些資料 地址的部分會不完全
可能只有高雄鳳山區 或台北台北 ...
super31610 發表於 2014-9-10 15:07

改另一種判斷方式:
  1. Sub nn()
  2.   Dim lRows&, lRow&
  3.   Dim iI%, iJ%
  4.   Dim vData()
  5.   
  6.   lRow = 1
  7.   Do While Cells(lRow, 1) <> ""
  8.     iI = 0
  9.     ReDim vData(4)
  10.     With Cells(lRow, 1)
  11.       Do
  12.         vData(iI) = .Offset(iI)
  13.         iI = iI + 1
  14.       Loop Until Left(.Offset(iI), 2) = "C-"
  15.       vData(iI) = .Offset(iI)
  16.       If iI > 3 Then
  17.         .Value = vData(0) & vData(1)
  18.         .Offset(1).Rows.Delete xlShiftUp
  19.       End If

  20.       iI = iI - 2
  21.       For iJ = 0 To 2
  22.          Cells(lRow, 1).Offset(, iJ + 1) = vData(iI + iJ)
  23.         .Offset(1).Rows.Delete xlShiftUp
  24.       Next
  25.       lRow = lRow + 1
  26.     End With
  27.   Loop
  28. End Sub
複製代碼

作者: super31610    時間: 2014-9-12 14:48

感謝你啊 雖然大部分的程式碼都看不懂沒辦法自己改
但是 對我很有幫助 感謝!!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)