標題:
[發問]
關於儲存格 兩段的問題
[打印本頁]
作者:
mark15jill
時間:
2012-3-14 09:32
標題:
關於儲存格 兩段的問題
本帖最後由 mark15jill 於 2012-3-14 09:33 編輯
想請問 如果儲存格 有兩段文字(如附圖) 要怎用VBA判別 上、下行文字??
(只會合再一起 不會分開= =")
如附圖
attachimg]9978[/attachimg]
作者:
Hsieh
時間:
2012-3-14 09:42
回復
1#
mark15jill
換行字元為Chr(10)
作者:
mark15jill
時間:
2012-3-14 09:45
回復
2#
Hsieh
Hsieh 大大 我的意思是說
如附圖 右邊第一個是 姓名(如 海龍王) 第二個是區域(如海底城) 要怎把 原始的分解出..QQ
作者:
Hsieh
時間:
2012-3-14 10:19
回復
3#
mark15jill
ar=split(a,chr(10))
a.offset(,2).resize(,ubound(ar)+1)=ar
作者:
mark15jill
時間:
2012-3-14 10:37
回復
4#
Hsieh
前段看得懂
後段 他顯示型態不符..
作者:
hugh0620
時間:
2012-3-14 11:19
本帖最後由 hugh0620 於 2012-3-14 11:23 編輯
回復
5#
mark15jill
這個剛好我最近也有處理過~ 我採用的是透過一般函數的處理方式~ 來撰寫程式碼
C1 = Left(Sheet3.Cells(原始資料儲存格), Application.Find(Chr(13), Sheet3.Cells(原始資料儲存格), 1) - 1) '(減不減1看你資料內容,自行增減)
C2 = Mid(Sheet3.Cells(原始資料儲存格), Application.Find(Chr(10), Sheet3.Cells(原始資料儲存格), 1) + 1, Len(Sheet3.Cells(原始資料儲存格))) '(加不加1看你資料內容,自行增加)
'C1=名字
'C2=區域
作者:
mark15jill
時間:
2012-3-14 11:38
回復
6#
hugh0620
[attach]9979[/attach]
[attach]9980[/attach]
作者:
register313
時間:
2012-3-14 11:39
回復
5#
mark15jill
Hsieh超版的程式沒有問題,只是取出的欄位順序與你要的相反
Sub SS()
For Each a In Range([a1], [A65536].End(xlUp))
ar = Split(a, Chr(10))
a.Offset(, 2).Resize(, UBound(ar) + 1) = ar
Next
End Sub
複製代碼
[attach]9981[/attach]
作者:
mark15jill
時間:
2012-3-14 11:45
回復
8#
register313
試驗可以.. 感謝各位大大的協助..
顛倒是沒關係.. 後續再調整就好
之前是多筆資料要統合一起,現在是要分解出。
真是xxxxxxxxo = ="
作者:
hugh0620
時間:
2012-3-14 11:52
回復
7#
mark15jill
這樣就可以了~
chr(13)->chr(10)
因為我的資料是從資料庫導出來的~ 所以會有一個chr(13)的字元~
所以~ 你要自行去了解~ 你資料的內容~ 再去調整成適當的程式碼~
Sub ex()
Cells(1, 3) = Left(Sheet1.Cells(1, 1), Application.Find(Chr(10), Sheet1.Cells(1, 1), 1) - 1) '(減不減1看你資料內容,自行增減)
Cells(1, 4) = Mid(Sheet1.Cells(1, 1), Application.Find(Chr(10), Sheet1.Cells(1, 1), 1) + 1, Len(Sheet1.Cells(1, 1))) '(加不加1看你資料內容,自行增加)
End Sub
作者:
mark15jill
時間:
2012-3-14 11:57
回復
10#
hugh0620
謝謝HUGH0620 大大
有試驗了 可以~ 謝謝(目前正將程式碼轉換成 想要的功能擴充區塊)...
作者:
Hsieh
時間:
2012-3-14 13:35
回復
3#
mark15jill
如果是分隔符號確定是alt+enter
使用資料剖析/分隔符號/其他輸入alt+數字鍵10
[attach]9982[/attach]
作者:
mark15jill
時間:
2012-3-14 13:41
了解~~
謝謝大大的教導..
因為有些資料 原始就已經合在一個儲存格
經轉換後 要分開
作者:
c_c_lai
時間:
2012-3-25 18:01
請教一下假設字串中 Chr(10) 萬一不存在時,執行 Application.Find(Chr(10), Sheet1.Cells(1, 1), 1) 為何會出現 Error 呢?
作者:
register313
時間:
2012-3-25 19:57
回復
14#
c_c_lai
函數說明
[attach]10131[/attach]
作者:
c_c_lai
時間:
2012-3-26 08:35
原來如此, 因為我是用 Application.Find("/", Sheet1.Cells(1, 1), 1) 的方式來處哩,
如果內容為 "海龍宮/海龍王" 就 OK, 但如果換成 "海龍宮 海龍王" 則為 #VALUE 了。
謝謝您的指導!
作者:
Hsieh
時間:
2012-3-26 08:45
本帖最後由 Hsieh 於 2012-3-26 08:48 編輯
回復
16#
c_c_lai
Application.Find這是VBA引用工作表函數
FIND函數的說明內清楚提到,當搜尋不到字元會傳回錯誤值
不要將VBA方法與工作表函數混淆
工作表函數FIND會傳回字元位於字串中的位置,會傳回一個數值
VBA的Find方法是找到符合條件的儲存格,會傳回儲存格物件
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)