用 .csv 文件中的 VBA 仅在 3 列中用分号替换逗号
Posted
技术标签:
【中文标题】用 .csv 文件中的 VBA 仅在 3 列中用分号替换逗号【英文标题】:Replace comma with semi-colon in only 3 columns with VBA within .csv file 【发布时间】:2015-12-18 17:11:00 【问题描述】:让我看看我是否可以再试一次。我有一个 CSV 文件。它代表逗号分隔值,它是一种文件格式。在这个文件中,下面的每个单元格中有几列不同的数据。如果我在记事本中打开 CSV 文件,每个“单元格”都用逗号分隔,因此是文件格式名称。在 Excel 中,没有逗号。单元格显然由表格边界线分隔。我想要做的是用分号替换 F 到 H 列、第 2 行及以下(也有数据)中的逗号。文件中的其余逗号保持不变。
【问题讨论】:
录制一个 vba 宏,用 ; 替换逗号看看代码 我已经弄清楚了分号。现在,我试图弄清楚如何删除 vColumns 数组(列 F 到 H)中的逗号。这是一个 csv 文件。逗号被视为列表分隔符。 @dacrovinunghi - 我已经这样做了,我意识到单元格内的数据会有所不同。所以,看这样的代码是没有用的。我正在寻找用 ; 替换默认列表分隔符(, - 逗号) (分号)3 列。 我们需要一个样本,这很奇怪 @dacrovinunghi - 请查看我的更新。谢谢。 【参考方案1】:Sub AddSemicolonsINSTALLMENT()
Dim vColumns As Variant, vColumn As Variant
Dim rCol As Range, rCell As Range
vColumns = Array("F", "G", "H")
For Each vColumn In vColumns
Set rCol = Range(Range(vColumn & "2"), Cells(Rows.Count, vColumn).End(xlUp)) '<<EDIT
For Each rCell In rCol.Cells
rCell.Value = ";" & Replace(rCell.Value, ",", ";") & ";"
Next rCell
Next vColumn
End Sub
【讨论】:
它仍然没有删除所选列中的逗号。 这是您在 Excel 中打开的 CSV 文件,对吗?我觉得你的问题中缺少一些关于你想要做什么的重要信息......看起来你想用分号替换分隔符逗号,但目前尚不清楚一旦 CSV 在 excel 中打开,它将如何工作(因为那时分隔符逗号将不存在) 是的,这是我在 Excel 中打开的 CSV 文件。是的,这正是我想要做的。我一直试图弄清楚如何做到这一点,而不必手动去每个单元格并替换它。 查看我上面的编辑:测试并为我工作(至少,它完成了您发布的代码似乎打算做的事情) 对不起。但似乎我并没有像我想象的那样解释它。我了解在 Excel 中,CSV 文件中的任何单元格中都没有可见逗号。但是,当我在记事本中打开 CSV 文件时,它们就在那里。特定列中的逗号是我要替换的逗号。在这个专业领域你有什么可以推荐的书吗?以上是关于用 .csv 文件中的 VBA 仅在 3 列中用分号替换逗号的主要内容,如果未能解决你的问题,请参考以下文章
excel表VBA中用代码如何建立多级combobox下拉菜单