2017-02-22 128 views
-1

在我的輸入csv文件中,我可能在文件的任何位置都有以下特殊字符。我必須用一些替代文字替換下面的特殊字符。我怎樣才能做到這一點在VB腳本?VB腳本 - 從csv文件中刪除特殊字符

®³·•½×IΕ - ∞∞「「≤≥•

+2

閱讀並關注_Hey,腳本專家! Blog_:[如何查找和替換文本文件中的文本?](https://blogs.technet.microsoft.com/heyscriptingguy/2005/02/08/how-can-i-find-and-replace-text -in-一個文本文件/)。然後,如果遇到某些問題,請編輯您的問題並顯示代碼的[mcve]。 – JosefZ

+0

用於編寫csv文件的字符編碼是什麼? (所有文本都有一個編碼,如果你不知道它是什麼,那麼你不能正確讀取它。)VB腳本自然地使用UTF-16,但可以使用默認的ANSI代碼頁進行轉換。默認的ANSI代碼頁是數十種編碼中的一種,並隨着時間,用戶和系統的變化而變化,因此它使通信非常複雜。注意:令人困惑的是,在VB腳本文檔和其他地方,UTF-16被稱爲Unicode。 –

回答

0

我們可以遍歷CSV文件的每一個細胞,並在每個單元驗證每個字節,它使用ASCII比較值根據您的要求,如果Ascii值不在我們預期的值範圍之內,我們可以用您需要的任何文本替換它。下面的示例代碼

Workbooks.Open("Your CSV file") 
for k = 1 to Activeworkbook.Sheets(1).usedrange.rows.count 

for j= 1 to Activeworkbook.Sheets(1).usedrange.columns.count 
value=Activeworkbook.sheets(1).cells(k,j) 
newvalue="" 
for i=1 to len(value)-1 

temp=mid(value,i,1) 
if (Asc(temp)<127 and Asc(temp)>31)then ' i am just assuming only the values on keyboard should be included any other conditions required for your requirement can be implied here 

newvalue=newvalue & temp 

else 

newvalue=newvalue &"required text" 
endif 

next 

activeworkbook.sheets(1).cells(k,j)=newvalue 

next 
next 
+0

這將是VBA,而不是VB腳本。儘管如此,在Excel中工作可能會更有成效。也許提問者會轉移那裏的工作。 –