2017-08-10 5 views
2

今日、私は.trim()vba関数を使ってデータを整理していました。それが起こったけれど。に変更される、と私は理由が分からない。Excel VBA .Trim関数が変更されます。 to、

Cells(rw, j).Value = Trim(Cells(rw, j).Value) 

は私がしたすべてで、次のように値を変更:

5.2 - >同じ列に値が含まれているものの、それがローカル設定が原因であると思うかもしれない5,2

ワン(3)(6.1)のようなものです。事前

+0

'Cells(rw、j).Value = Trim(セル(rw、j))' – Shrikant

+0

そのセルの '.NumberFormat'とは何ですか? – braX

+0

私は自分の家がローカルの設定だと思っています。 '3(6.1)'が小数点を保持するのは、この値が文字列として解釈されることです。 – Ambie

答えて

3

ゴーで

おかげファイルへ - [オプション] - [詳細]をして利用システムの区切りを探します。小数点区切り文字を使用します。そして、なるように桁区切り、

あなたはまた、次のコードを使用してVBAでこれらを変更することができます。

Cells(rw, j).Value = "'" & Trim(Cells(rw, j).Text) 
:あなたはこれらの設定を変更し、にあなたのコードを変更したくないので

Application.DecimalSeparator = "." 
Application.ThousandsSeparator = "," 
Application.UseSystemSeparators = False 

.Textは、数字に変換しようとするのではなく、セル内の文字列バージョンを提供します(数字のように見える場合)。

+0

それは、小数点の区切り文字はコンマですが、この列は文字列として解釈する必要があります。 – Iso

+0

新しいアップデートを見ると、問題を解決するはずです。 –

+0

2番目の解決策があっても、エラーはまだ発生します。 – Iso

1

あなたのグローバルシステム/この1つのアプリケーションの設定をエクセル変更したくない場合は、あなたのような何かをテキストに値を強制的に試みることができる:あなたのコメントに基づいて、また

With Cells(rw, j) 
    .NumberFormat = "@" 
    .Value = Trim(Cells(rw, j).Value) 
End With 

は:

With Cells(rw, j).Value = "'" & Trim(Cells(rw, j).Value) 
+0

NumberFormatには列全体に適用され、運はありません。 – Iso

+0

別の提案が追加されました。 –

+0

まだ運がありません。これで今2時間は、それは私の神経に乗っている。 – Iso

0

あなたはこれを試すことができます。

Dim temp As String 
temp = Cells(rw, j).Value 
temp = Trim(temp) 
Cells(rw, j).Value = temp 

は、残念ながら、私はそれをテストすることはできません。

関連する問題