EXCEL VBA评估和更换

时间:2016-12-02 16:51:20

标签: excel vba replace evaluate

我需要让Evaluate为Replace功能工作。代码应该用什么都不替换“-0700”。下面提供了代码以及C列中的数据:

Set sh = ThisWorkbook.Sheets(1)
Set rangc = sh.Range("c2:c10")
For Each area In rangc.Areas
  area.Value = Evaluate("IF(ROW(" & area.Address & ")," & Replace(area.Address, " -0700", "") & ")")
Next area

- 这是表格中的数据:

ColumnC(original data)
 -0700
sdfg -0700
how  -0700 saf
2016-10-16 10:13:41 -0700

ColumnC(After code is run)
-700
sdfg -0700
how  -0700 saf
10/16/2016 10:13

为什么代码对第一行(-700)执行了某些操作,但未替换为“”。它也删除了第4行中的“-700”(2016年10月16日10:13)。但它不适用于第2和第3行?如何使其适用于字符串或数字?

我正在尝试使用类似的代码来快速替换另一个字符串中的部分字符串。我不能接受使用循环方法,因为有数十万行。

1 个答案:

答案 0 :(得分:0)

您无需遍历整个范围。你可以使用非常快的.Replace方法:

Set sh = ThisWorkbook.Sheets(1)
Set rangc = sh.Range("c2:c10")
rangc.Replace What:=" -0700", Replacement:=""