excel - 使用VBA从csv文件替换列中的所有值
问题描述
我有一个 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
推荐阅读
- linux - /proc/pid/fdinfo/fd_num 中的标志 02000002 是什么意思?
- python-3.x - 我在列表中有 DataFrame 的列和数据,我想将相关数据放入相关列
- php - 如何使用 PHP 和 PDO 和准备好的语句创建安全(避免 SQL 注入)分页?
- r - 当 clusterOptions 参数存在时,ObserveEvent 删除 addCircleMarkers 组——预期的行为?
- amazon-web-services - 为子域设置 Bitnami Nginx
- c# - Unity - 如何重置 ExecuteInEditMode 脚本的检查器值?
- r - R Highcharter:如何显示无数据显示消息?
- pyspark - 如何处理 pyspark 中的 SAFE_CAST sql 函数
- php - 使用 Alamofire Swift 5 上传文件问题?
- javascript - GetSafeHtmlFragment 仍然无法按预期停止 c# 中的跨站点脚本