【问题标题】:Replace semi-colon with comma用逗号替换分号
【发布时间】:2015-09-28 11:51:10
【问题描述】:

我想在一个范围内用逗号替换分号。

下面的代码只删除了分号,没有把逗号放在它的位置。

  Range("AU2:AU250").Select
  Selection.Replace What:=";", Replacement:=",", LookAt:=xlPart, _
  SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
  ReplaceFormat:=False

【问题讨论】:

  • 要替换分号的单元格中有哪些类型的数据?
  • 这是 CSV 文件中的数据。我正在使用的特定范围是作为文本导入的数字。分号位于一组数字之间,我需要将它们全部替换为逗号。
  • 如果你的意思是千位分隔符,那应该通过格式化来完成,而不是作为单元格值的一部分。
  • 如果不逐步遍历每个单元格并用逗号替换分号,您将无法做到这一点。这是您能够在将值返回到单元格之前将Chr(39)Range.PrefixCharacter property 添加到值的唯一方法。逗号正在消失,因为 Excel 会将它们解释为数字的一部分并将它们从 Range.Value2 property 中删除。
  • 它们不是千位分隔符。我需要逗号来简单地替换分号。到目前为止,我一直在手动输入它们,我想加快这个过程。这些编号用作订单文件中的 SKU。有时是三位数,有时是四位数。

标签: excel vba


【解决方案1】:

试试这个...

Sub Comma()
    Dim R As Range, C As Range

    Set R = Range([AU2], [AU250])

    For Each C In R.Cells
        C = Replace(C, ";", ",")
    Next C

End Sub

恕我直言,这是一种更像 VBA 的方法,它使用范围对象,而不是模拟您在直接与工作表交互时使用的 Excel 内容

【讨论】:

  • 效率也低了很多。
【解决方案2】:

您能否从 csv 文件的 CSV 范围内复制粘贴一些有问题的单元格?用写字板打开它,而不是用excel。

另外,你用的是什么版本的excel?我在 2003 年或 2010 年都没有成功。

我认为您需要多次执行此操作,这就是您制作宏或查找/替换失败的原因,并且您还发布宏代码以获得帮助? :-)

【讨论】:

  • 我用的是2013。上面提供的代码实际上完美地解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
  • 1970-01-01
  • 2019-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-01
相关资源
最近更新 更多