通过Excel文件中的单个值替换或重新编码多个不同的值

时间:2010-04-08 08:58:35

标签: excel vba excel-vba replace

我有一个Excel工作表,其中包含多个列中的数据。对于特定列,我将需要Excel将值(例如10到15)之间的所有值替换为值1,将值16和20之间的值替换为值2,依此类推。

我知道如何为单个值做这件事;即:我可以将值10替换为1,11乘以1,依此类推。但这将是一项乏味的练习。是否有一些代码可以执行此任务?

感谢您的帮助。

的问候, 阿里

2 个答案:

答案 0 :(得分:1)

这是一种快速而肮脏的方式,必须根据您真正想要改变的值来修改。这将11到15转换为1,将16到20转换为2等等。

您可能希望在电子表格上放置一个按钮,然后右键单击并选择“查看代码”。然后在Sub和End Sub语句之间输入以下内容。 “RangetoChange”是命名范围的名称,或者您可以放入范围本身,例如“A1:A100”。一旦输入完毕,您就会退出设计模式(您输入以放置按钮),然后单击按钮。确保将公式更改为您真正想要的结果。

Dim A() As Variant
Dim i As Integer

A = Range("RangetoChange")
For i = 1 To (UBound(A) - LBound(A) + 1)
    A(i, 1) = (A(i, 1) \ 5) - 1
Next i
Range("RangetoChange") = A

答案 1 :(得分:1)

如果您不需要使用宏自动执行此操作或经常重复,则可以在电子表格中快速执行此操作。

  1. 在列的右侧插入一个新列以进行更改。假设该列是A,您刚刚创建了一个新列B.
  2. 在单元格B1中输入公式=INT(A1/5) - 1
  3. 将此公式复制到B列中的所有单元格,以获取A列中单元格的范围。
  4. 复制B列中的单元格并使用右键单击“粘贴特殊...”,“值”粘贴到A列,然后单击“确定”。
  5. 删除B列(这是一个临时/工作列)。
  6. 这将使用B列中的调整值替换A列中的值。继续使用任何其他列。