私がテストに使用するtxtファイルをビルドするためのvbaコードを作成しようとしています。私は問題にぶつかっている。私の結果の中には、00を使って落としたものがありますStr = Str & "00" & Left(CashRightJust(Range("h63"), 11), 9)
これは基本的にはセルH63を見るように指示していますが、量を右に揃えていますが、
私の問題は、現在、.25のような実際の変更をテストする必要があることです。このコードを単独で使用すると、変更の最後にゼロが追加されます。 .00以上であれば反映するようにこのコードを調整する必要があります。00編集またはゼロを追加しないでくださいExcel VBA - 指定した文字数でゼロを削除して追加する
これは意味があると思います。私はまだこれでかなり新しいですし、かなり遠くになっていますが、まだ迷っている瞬間があります。ありがとうございました。
Spreadsheet created to build code to send to txt file
Function Detail_Rec1()
Dim strlencount As Integer
Dim strspacer As Integer
If Range("b63").Value <> "5" Then
Exit Function
End If
Str = Str & Range("b63").Value **Result: 5**
Str = Str & Range("c63").Value **Result: 400**
Str = Str & Range("d63").Value **Result: 1234567**
Str = Module1.SpaceAdd(Str, 1) **Result: 1 space**
Str = Str & Trim(Range("e63").Value)
strlencount = Len(Trim(Range("e63").Value))
strspacer = 30 - strlencount
Str = Module1.SpaceAdd(Str, strspacer) **Result: Company name with spacefill for 30 character; name is left justified**
Str = Str & Trim(Range("f63").Value)
strlencount = Len(Trim(Range("f63").Value))
strspacer = 11 - strlencount
Str = Module1.SpaceAdd(Str, strspacer) **Result: Company ID number; left justify; space filled total 11 characters**
Str = Str & Range("G63").Value Result: 116
Str = Str & CashRightJust(Range("h63"), 11) **Result: 1000; only 1000 no cents; dollars only; 11 character zero filled right justify**
Str = Str & CashRightJust(Range("i63"), 11)**Result: 1000; only 1000 no cents; dollars only; 11 character zero filled right justify**
Str = Str & CashRightJust(Range("j63"), 11)**Result: 1000; only 1000 no cents; dollars only; 11 character zero filled right justify**
Str = Str & Trim(Range("k63").Value)
strlencount = Len(Trim(Range("k63").Value))
strspacer = 4 - strlencount
Str = Module1.ZeroAdd(Str, strspacer) **Result: Rate of 4 characters entered; 4 character length**
Str = Module1.SpaceAdd(Str, 1) **Result: 1 space**
Str = Str & CashRightJust(Range("l63"), 11) **Result: 3348.75 needs to be 334875. 11 characters, right justified, no decimal.**
Str = Str & CashRightJust(Range("m63"), 11)
Str = Str & CashRightJust(Range("n63"), 11)
Str = Str & CashRightJust(Range("o63"), 11)
Str = Str & "00000" & Right(Range("p63").Value, 6)
strlencount = Len(Trim(Range("p63").Value))
strspacer = 6 - strlencount
Str = Module1.ZeroAdd(Str, strspacer)
[符号化されている行のExcelの画像] [テキストファイルの表示方法] [2] 2]
私は必要なもののために私の最終的な結果は
23.45です - 2345 23.00 - 2300スペックがドルのみを示している場合を除き、それは23である必要があります 丸めなし。 私は、これはビジュアル
追加情報をより多くのアウトに役立ちます願っています:現在$ AMTSのために使用されている私のモジュールは以下の通りです:
If Str = 0 Then
CashRightJust = ZeroAdd(Str2, c)
Exit Function
Else
If InStr(Str, ".") > 0 Then
Str2 = Right(Str, 2)
If InStr(Str2, ".") > 0 Then
strnew = Str & "0"
Else
strnew = Str
End If
Else
strnew = Str & "00"
End If
Excel snapshot of info being coded
540ボブのタイヤ987654321 116000000010000000000005000000009503525 00000334875
これは次のとおりです。 540ボブのタイヤ987654321 11600000100000000005000000000950003525 000334875
私はtxtファイルの画像を投稿できませんでした。十分な評判がありません。ごめんなさい;これが表示される方法です
いくつかの入力サンプルと希望の出力値を追加できますか?あなたの機能が何をするのかははっきりしていません。 – arcadeprecinct
なぜRight(Str、3)<。 ".00"ならばStr = Str& ".00" 'のようなものはありませんか? –
私は試してみることができます:あなたがマットに言ったことを試してみて、それがうまくいくかどうか教えてください。 –