2017-02-22 25 views
-1

入力したcsvファイルには、以下の特殊文字がファイルのどこにあってもかまいません。私は以下の特殊文字を代替テキストに置き換えなければなりません。どのようにVBスクリプトでこれを行うことができますか?VB Script - csvファイルから特殊文字を削除する

®³・•½×ïΕ - ∞∞「「≤≥•

私たちは、CSVファイルの各セルを反復処理し、各セル内の各バイトを検証し、アスキーとそれを比較することができ
+2

_Hey、Scripting Guy! Blog_:[テキストファイル内のテキストを検索して置換する方法はありますか(https://blogs.technet.microsoft.com/heyscriptingguy/2005/02/08/how-can-i-find-and-replace-text) -in-a-text-file /)を指定します。次に、あなたの質問を編集して、あなたが何かに悩まされた場合は、あなたのコードの[mcve]を表示してください。 – JosefZ

+0

csvファイルの書き込みに使用される文字エンコーディングとは何ですか? VBスクリプトはUTF-16で自然に動作しますが、デフォルトのANSIコードページを使用して変換することができます(すべてのテキストにエンコードがあります。既定のANSIコードページは、数十のエンコーディングのうちの1つで、時間、ユーザー、システムによって異なるため、通信が非常に複雑になります。注意:UTF-16は、VBスクリプトのドキュメントや他の場所でUnicodeと呼ばれています。 –

答えて

0

あなたの要件に基づいて値を計算し、その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での作業ははるかに生産的になる可能性があります。多分質問の質問者は仕事をそこに移すでしょう。 –

関連する問題