用于替换单元格值并保持格式化的VBA脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于替换单元格值并保持格式化的VBA脚本相关的知识,希望对你有一定的参考价值。

我有下面的表格,我正在尝试编写一个脚本,用不同的客户付款替换下面单元格的内容(即用2,000英镑替换1,100英镑)。下面是我的脚本片段,但是当我写回单元格时,它会丢失所有格式和编号列表。

如何使用非常相似的数据替换单元格数据并仍保留格式?

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:")
答案

不确定这是否有帮助,但你正在使用一个表,所以适用于excel也适用于你。

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

以上是关于用于替换单元格值并保持格式化的VBA脚本的主要内容,如果未能解决你的问题,请参考以下文章

基于公式的单元格值触发的 VBA 电子邮件代码

Excel VBA代码查找列中的最大单元格值并删除其下方的所有行

如何在 VBA 中检索工作表中格式化的 Excel 单元格值?

VBA 按钮 - 基于单元格值而不是 ActiveCell

根据单元格的变化清除所有下一行的单元格值并保留公式

替换后Excel VBA值保持字符串格式