我的csv中有这样的列:
Id Name Price
1 Level X discontinued 34
3 Level Y Dicontinued 64
7 Level Z 94
我要检查“名称”列中的已终止还是已终止 如果是,请删除行,否则请什么都不做,所以我的最终结果将是:
Id Name Price
7 Level Z 94
答案 0 :(得分:0)
一个解决方案可以通过以下设置运行以下Excel宏ExampleMacro
。此代码将过滤第一个工作表[此处TotalList
],将内容复制到第二个工作表[此处Filtered
]
注意:请使用我使用的相同名称,或者如果您希望更改名称,请相应更改以下宏的代码。否则它将不起作用
Sub ExampleMacro()
Dim i As Integer
Dim j As Integer
Set ShMaster = ThisWorkbook.Sheets("TotalList")
Set ShSlave = ThisWorkbook.Sheets("Filtered")
'cleanup for next macro executions
ShSlave.UsedRange.Clear
'copying the headers
ShSlave.Range("A1").Value = ShMaster.Range("A1").Value
ShSlave.Range("B1").Value = ShMaster.Range("B1").Value
ShSlave.Range("C1").Value = ShMaster.Range("C1").Value
'searching what to keep
j = 2
For i = 2 To ShMaster.UsedRange.Rows.Count
'MsgBox "value is " & InStr(1, (Range("B" & i).Value), "discontinued")
If InStr(1, (ShMaster.Range("B" & i).Value), "discontinued") = 0 Then
While ShSlave.Range("C" & j).Value <> ""
j = j + 1
Wend
ShSlave.Range("A" & j).Value = ShMaster.Range("A" & i).Value
ShSlave.Range("B" & j).Value = ShMaster.Range("B" & i).Value
ShSlave.Range("C" & j).Value = ShMaster.Range("C" & i).Value
End If
Next i
End Sub
希望这会有所帮助
祝你有美好的一天,
安东尼诺