2017-08-21 15 views
0

私は下の表に、下のセルの内容を別の顧客の支払いに置き換えるスクリプトを作成しようとしています(つまり、£1,100を£2,000 )。以下はスクリプトのスニペットですが、セルに書き戻すと、すべての書式設定と番号付きリストが失われます。セルの値を置き換えて書式を保持するVBAスクリプト

セルデータを非常に似たデータで置き換えても、どうやってフォーマットを維持できますか?

ps。私はそれを読みやすくするために、セルの内容を簡略化してきたので、コードは正確にそのコンテンツには適用されません

Before After

DescPlan = Trim(t1.Cell(2, 2).Range.Text) 
DescTest = InStr(1, DescPlan, ":") 
finalString = Left(DescPlan, DescTest) 

t1.Cell(2, 2).Range.Text = Replace(DescPlan, finalString, "Payment by the customer of " + Format(v, "Currency") + " will be due upon completion of items below:") 
+1

全体を置き換える代わりに、通貨額の値を置き換えるだけではどうですか? – dwirony

+0

これはMicrosoft Wordとどのように関連していますか?もう少し説明できますか? –

+0

@dwironyどうすればそれをやりますか?テーブルの各行で£1,100の値が違う可能性があるので、あなたはこれを適用することができません。 –

答えて

0

このことができますが、あなたが使用している場合はわかりませんあなたのために働くものがあなたのために働くはずです。

Sub replace_keep_format() 

Dim t1 As Range 
Dim sStrng As String, rStrng As String 
Dim i As Integer 

sStrng = "£1,100" 
rStrng = "£2,000" 
i = 1 

Do Until ThisWorkbook.Sheets(1).Range("a" & i) = "" 
Set t1 = ThisWorkbook.Sheets(1).Range("a" & i) 
t1 = Replace(Expression:=t1, Find:=sStrng, Replace:=rStrng) 
i = i + 1 
Loop 

End Sub 
関連する問題