• 2

excel 中文字都變成亂碼

還是有解的
其它軟體直接輸出沒原始檔案,編碼不對,造成亂碼
用vba修正編碼的方式,請參考






'程式碼放到模組(module)裡
'執行test()副程式

Sub test()

Dim Clipboard As Object, temp As String, i As Integer, j As Integer, r As Integer, c As Integer
Set Clipboard = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")


r = Range("a1").CurrentRegion.Rows.Count
c = Range("a1").CurrentRegion.Columns.Count
For i = 1 To r
For j = 1 To c
temp = temp & Cells(i, j) & vbTab
Next j
temp = temp & vbNewLine
Next i

Clipboard.SetText Replace(encode_fix(temp, "big5", "Windows-1252"), "???", "")
Clipboard.PutInClipboard


With ActiveSheet
.Cells(r + 10, 1).Select
.PasteSpecial NoHTMLFormatting:=True
.Columns.AutoFit
.Cells(1, 1).Select
End With

Set Clipboard = Nothing


End Sub



Function encode_fix(old_data As String, New_Charset As String, Old_Charset As String) As String

Dim Encode As Object
Set Encode = CreateObject("adodb.stream")

With Encode

.Type = 2
.Charset = Old_Charset
.Open
.WriteText old_data, adWriteLine '
.Position = 0
Debug.Print .readtext

.Position = 0
.Charset = New_Charset

encode_fix = .readtext
.Close

End With

Set Encode = Nothing

End Function



rachelrrr
rachelrrr 樓主

大大你太厲害了, 可是我從來沒有用過VBA, 我要消化一下。 如果是編碼的問題 那這個軟體是不是應該要設下選項 讓我們選編碼方式 而不是叫我改作業系統

2022-08-05 7:15
rachelrrr wrote:
我不知道這個問題在這裡發問適不適合
我下載了一個看盤軟體 可以把以前的交易歷史 輸出成Excel file
可是中文字都變成亂碼
我打電話去詢問 他說他們只試過 excel 2016還有 office 365
我的是 excel 2010他們沒有試過 他還詢問我作業系統的版本 他叫我更新成Windows 10的最新版本試試看
這是合理的嗎? Excel的字體和作業系統的版本有關?


如果你的 Excel 輸出檔格式是 cvs檔, 那可能好轉!

方法:
1.下載 阿順開發的 Rainbow Text Editor v3 [中文免費版]
https://www.mobile01.com/topicdetail.php?f=511&t=6739701

2.執行 Rainbow後, 將cvs檔拖到 Rainbow 內,
看Rainbow有無正確抓到 中文!?

如有抓到中文,另外存檔時,可以選 ansi, utf8, unicode,看你需要.


特別:
1.主要是 Rainbow Text Editor 開檔時,
可以自動辨識 Big5 跟utf,跟unicode!!

2.Rainbow.zip檔約680多kb, 下載後解開,執行檔才1.1MB. 是綠色軟體.

3. Rainbow Text Editor XP/Win10 都可以執行.
哈瑪星.阿順(Forex I.A. Chen) www.flickr.com/ForexChen
snare

樓主在9樓有提供檔案,您可以試試看。

2023-02-19 21:22
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?