excel - Excel CSV 批量删除行
问题描述
我有一个超过 50k 产品的 csv 文件。它是一个 csv 文件,所有信息都在 A 列中,我的目标是遍历每一行并找到其中带有“保修扩展”的记录,然后删除该行。
我尝试了下面的代码,但我怀疑它在 A 列中查找仅包含保修扩展的行。我将如何自定义此代码以查看其中包含保修扩展的行,而不仅仅是保修扩展。
Last = Cells(Rows.Count, "A").End(xlUp).Row
For i = Last To 1 Step -1
If (Cells(i, "A").Value) = "Warranty Extension" Then
'Cells(i, "A").EntireRow.ClearContents ' USE THIS TO CLEAR CONTENTS BUT NOT DELETE ROW
Cells(i, "A").EntireRow.Delete
End If
Next i
解决方案
您需要使用Like 运算符和特殊字符来指示其他文本可能在您的搜索字符串之前或之后
Last = Cells(Rows.Count, "A").End(xlUp).Row
For i = Last To 1 Step -1
If Cells(i, "A").Value Like "*Warranty Extension*" Then
'Cells(i, "A").EntireRow.ClearContents ' USE THIS TO CLEAR CONTENTS BUT NOT DELETE ROW
Cells(i, "A").EntireRow.Delete
End If
Next i
运算符可以使用以下通配符Like
:
*
: 零个或多个字符?
: 任意单个字符#
: 任何一位数 (0–9)[charlist]
: charlist 中的任意单个字符[!charlist]
: 不在字符列表中的任何单个字符
我想补充一点,您没有指定应该在其中执行操作的工作簿和工作表,这意味着代码将在任何活动工作表中执行(可以更改中间代码的东西)。除非您的代码驻留在工作表模块中,否则我建议设置 Workbook 和 Worksheet 变量以防止代码在错误的数据上执行:
Dim wb As Workbook
Dim ws As Worksheet
Set wb = Workbooks("Example.xlsx")
Set ws = wb.Sheets("Sheet1")
LRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
推荐阅读
- javascript - 我可以从 nodejs 应用程序的 github repo 中读取文本文件吗?
- javascript - CSS中的嵌套下拉关闭延迟
- flutter - URI 文件中未指定主机
- mysql - 想更新mysql数据库上的某个字段
- python - 通过两列中的相同值对数据框进行子集
- google-chrome - chrome.browsingData.remove 或 chrome.cookies.remove 不删除所有 cookie
- aws-lambda - AWS API Gateway 无法使用 JSON 数组负载调用 AWS Lambda 函数
- ios - 在处理 Localizable.stringsdict 时,为什么 String.localizedStringWithFormat 能够以相同的输入产生不同的输出?
- firebase - Firebase 错误,“电子邮件地址格式错误。”
- eslint - 异常模式的 ESLint 格式