我有一个csv文件,在不同的列中混合了字符串和数字。我要替换所有的“?” 字符形成列C。
我正在尝试以下方法:
Set wb_dst = Workbooks.Open("C:\myFile.csv")
Set ws_dst = wb_dst.Sheets(1)
values = ws_dst.Range("C1:c500").Value
values = Replace(values, "?", "")
但是不确定如何在column C
不替换其他列中的值的情况下将该值转储回去。或者,是否有其他方法可以执行上述任务,或仅替换本地驱动器上csv文件中特定列中的某些字符?
编辑:我正在寻找更新myFile.csv C列中的值,所以我想我必须将数据转储到C列,我不确定吗?
这很简单。您只需将修改后的范围内的数组分配回相同范围内的值即可。但是,这种想法values = Replace(values, "?", "")
不会实现。您将需要分别修改数组的每个元素。
Sub Macro1()
Const LookFor As String = "?"
Const Replacement As String = "X"
Dim Wb As Workbook
Dim Ws As Worksheet
Dim Rng As Range
Dim Arr As Variant
Dim R As Long ' loop counter: rows
Set Wb = Workbooks.Open("C:\myFile.csv")
Set Ws = Wb.Worksheets(1)
Set Rng = Ws.Range("C1:C500")
Arr = Rng.Value
For R = 1 To UBound(Arr)
Arr(R, 1) = Replace(Arr(R, 1), LookFor, Replacement)
Next R
Rng.Value = Arr
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句