[發問]請問輸出成.TXT檔時可以指定在TXT檔中的位置嗎?
- 帖子
- 77
- 主題
- 11
- 精華
- 0
- 積分
- 118
- 點名
- 0
- 作業系統
- winXP
- 軟體版本
- office2007
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2010-12-24
- 最後登錄
- 2011-3-2
|
[發問]請問輸出成.TXT檔時可以指定在TXT檔中的位置嗎?
請問格為大大:
EXCEL輸出成.TXT檔時,可以指定每一欄的資料開頭從哪一個位置開始嗎?
因為輸出報表需求,所有資料列中,每一欄的資料開頭的位置必須一致
因資料長短不一,又夾雜中、英文與數字
所以不管我用Len、LenB去算同一蘭的最大長度,其餘補空白的方式皆無法圓滿
所以想請問各位大大能否直接指定起始位置?
或還有其他解決方式?
感恩 |
|
ASUS
|
|
|
|
|
- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
2#
發表於 2011-1-18 11:20
| 只看該作者
本帖最後由 hugh0620 於 2011-1-18 11:45 編輯
回復 1# asus103
我是一個新手~ 但是有笨方法可以勉強解決這個問題
如附件
資料長短不一.rar (10.48 KB)
執行後~ 再存成文字檔(tab字元分隔)
其他大大也許有更好的處理方式
PS. 另一種方式可是試著在ACCESS中 將每個欄位設成同樣的大小,再匯出成TEXT檔,也一樣可以達到這樣的效果
不過這個我沒試過,妳可以試一下 |
|
學習才能提升自己
|
|
|
|
|
- 帖子
- 77
- 主題
- 11
- 精華
- 0
- 積分
- 118
- 點名
- 0
- 作業系統
- winXP
- 軟體版本
- office2007
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2010-12-24
- 最後登錄
- 2011-3-2
|
3#
發表於 2011-1-18 11:45
| 只看該作者
回復 2# hugh0620
hugh0620大大您好
感謝您的熱心協助
其實讓我傷腦筋的是中英文混雜
因為全形、半形計算長度並不相同
再次感謝您 |
|
ASUS
|
|
|
|
|
- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
4#
發表於 2011-1-18 15:31
| 只看該作者
本帖最後由 hugh0620 於 2011-1-18 15:37 編輯
回復 3# asus103
樓主~ 再看看~ 附件~
資料長短不一7.rar (13.36 KB)
應該可以符合妳的需求~ 不過寫的很爛倒是真的~
如果適合~我相信妳只要改回圈就可以了~
我測試過LEN與LENB在EXCEL函數中與VBA中求出來的值是不一樣~
所以~ 有加一頁用函數是先取得LENB的值,再帶到VB中使用~
我只會用笨方法~ 所以就不要太嫌棄了~ 等大大們用更好的寫法~ 妳就不會看不懂了~
其實我的思考邏輯很簡單~
1.全型中英文都是兩個字元,所以我在EXCEL用函數LENB把字元求出~
2.再用LEN求出不管是全型或半型都是一個字算一個字元~
3. lenb值減LEN的值就知道有幾個字是全型,幾個字是半型
4.再後最用觀念去判斷程式的寫法 |
|
學習才能提升自己
|
|
|
|
|
- 帖子
- 77
- 主題
- 11
- 精華
- 0
- 積分
- 118
- 點名
- 0
- 作業系統
- winXP
- 軟體版本
- office2007
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2010-12-24
- 最後登錄
- 2011-3-2
|
5#
發表於 2011-1-18 16:41
| 只看該作者
totxt.rar (15.17 KB)
上傳我的例子
內含標準輸出的TXT
有勞各位費心協助
感恩再感恩 |
|
ASUS
|
|
|
|
|
- 帖子
- 77
- 主題
- 11
- 精華
- 0
- 積分
- 118
- 點名
- 0
- 作業系統
- winXP
- 軟體版本
- office2007
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2010-12-24
- 最後登錄
- 2011-3-2
|
6#
發表於 2011-1-18 16:49
| 只看該作者
回復 4# hugh0620
"VBA向前衝"大大感謝您
我也會再好好研究您的程式碼的
謝謝 |
|
ASUS
|
|
|
|
|
- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
7#
發表於 2011-1-18 17:39
| 只看該作者
本帖最後由 hugh0620 於 2011-1-18 17:49 編輯
回復 5# asus103
我有做了一些調整~ 不過還是有些地方有點錯誤 請查閱附檔~
資料長短不一XC.rar (101.94 KB)
|
|
學習才能提升自己
|
|
|
|
|
- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
9#
發表於 2011-1-19 13:40
| 只看該作者
|
學習才能提升自己
|
|
|
|
|
- 帖子
- 77
- 主題
- 11
- 精華
- 0
- 積分
- 118
- 點名
- 0
- 作業系統
- winXP
- 軟體版本
- office2007
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2010-12-24
- 最後登錄
- 2011-3-2
|
10#
發表於 2011-1-19 14:55
| 只看該作者
回復 8# Hsieh
Hsieh大大您好:
您的程式碼真是神乎其技阿
感恩
程式碼中許多事並不明白,還請指教
1.For Each A In [A1:D1]
ad = Range(A, Cells(Cells.Rows.Count, A.Column).End(xlUp)).Address
ad不是A1:D11嗎?為何每一次移動一欄而不是一個儲存格
2.Ar(s) = Evaluate("MAX(LENb(" & ad & "))")
感覺上像EXCEL中陣列的用法,但實在掌握不住竅門所在,能解釋一下這個用法嗎?
3.Evaluate("LenB(""" & test & """)") 的用法也看不懂
我把它改成 LenB( test) 後逐行執行時還OK,但最後似乎變成無線迴圈跳不出來
Evaluate()已大大的用法似乎代表函數是嗎?但說明中只有它是"方法"的用法
4.我用lenb()在程式中得到的第2欄最大值為26,為何大大能得正確的22
是我程度太差了,這麼多看不懂的地方
還請大大多加提點
感謝再感謝 |
|
ASUS
|
|
|
|
|