[問題]VBA-Excel匯出到txt前,先移除Unicode方式

看板Office作者 (只需要20秒的瘋狂勇氣!)時間7年前 (2018/07/17 00:06), 7年前編輯推噓0(002)
留言2則, 2人參與, 7年前最新討論串1/1
軟體: Excel 版本: 2016 各位大大好! 請問一下,目前透過vlookup,將nsmoss內容抓到第一個sheet後,再將有資料的欄位內容 一個一個的匯出到txt檔, 但遇到了匯出後,會有很多的????字元產生。(手動貼到txt,看來會有很多長短不一的 空格存在),在網路上查了一下,主要是說網頁斷行的值和Excel不同! 所以會產生看不到的空格! 爬了一些文,試了以下方式: 1. 下公式:B2=SUBSTITUTE(TRIM(A2), CHAR(160),"") -> 結果匯出後至txt後,還是一 樣有很多?字元 2. 有試過CLEAN+TRIM的組合,由於要輸出的內容有空格也有手動斷行,它會將一些要空 格 or 斷行都移除掉了! 3. 透過Ctrl+H,"尋找目標的欄位"為 Alt+160,"取代成的欄位,不輸任何東西 -> 結果 可行,在輸出txt檔時,沒有?字元了,有將它錄制巨集,但顯示內容如下, 重跑時,它會將所有的文字內容都清除掉。 Cells.Replace What:="?", Replacement:="", LookAt:=xlPart, SearchOrder:= _ xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False 雖然第3點可行,但需要停下來手動處理,所以想請問一下,有什麼巨集方式/公式, 可以在Excel內容要匯出txt前,就將Unicode移除? 另外,以下的code,是透過網路上查找來做修改的,順便問一下, 可以再透過Print #1 Replace的部份,在Excel在匯出txt的時候,直接刪除掉?字元嗎? 該如何寫呢? 請幫忙解答一下,謝謝. Sub Output() Dim i As Integer Dim j As Integer Dim k As Integer Dim a As Object Sheet1.Activate i = Range("A65536").End(xlUp).Row j = Selection.SpecialCells(xlCellTypeLastCell).Column For X = 2 To i For y = 2 To j If Cells(X, y) = "" Then Cells(X, y) = 0 End If Set fs = CreateObject("Scripting.FileSystemObject") Open "C:\1\" & Cells(X, "A") & "\" & Cells(1, y) & ".txt" For Output As #1 Print #1, Replace(Cells(X, y), Chr(10), vbCrLf), Chr(10), vbCrLf '保持內容 的空格及斷行 Close #1 Next Next Close #1 End Sub -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.120.33 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1531757214.A.9F7.html ※ 編輯: xc9500 (220.132.120.33), 07/17/2018 00:10:34

07/17 00:16, 7年前 , 1F
google alt+160 取代巨集
07/17 00:16, 1F

07/17 19:38, 7年前 , 2F
謝謝S大大的回覆,已經找到了!
07/17 19:38, 2F
文章代碼(AID): #1RJCAUdt (Office)
文章代碼(AID): #1RJCAUdt (Office)