我有包含大量数据的excel表,需要进行解析。 对我来说这是一个很大的项目,到目前为止已经成功实现了它,但是一些小的东西阻止了我。 在我的一个领域,我有:
sadadasd|2|adsgfas
sadadasd|1|adsgfas
sadadasd|0|adsgfas
我想要做的是包含
的行|1| -> delete entire row
|2| -> delete everything before |1| including |1|
|0| -> Delete cell value.
我有0和2的条件,但我缺少1。 我目前正在使用以下代码:
Dim myRange As Range
Dim myCell As Range
Set myRange = Range("H4:H1000")
For Each myCell In myRange
If myCell Like "*|0|*" Then
myCell.ClearContents
ElseIf myCell Like "*|1|*" Then
myCell.EntireRow.Delete
ElseIf myCell Like "*|2|*" Then
result_3
Else
End If
Next myCell
你能帮我用一个删除除了后面文字之外的所有内容的命令替换result_3吗?我确信已经有了一个解决方案,但我花了太多时间在那个,我需要尽快完成项目。 先感谢您!
答案 0 :(得分:1)
尝试一下:
Sub qwerty()
Dim i As Long, v As String, vv As String
For i = 1000 To 4 Step -1
With Cells(i, "H")
v = .Value
vv = Mid(v, 10, 2)
Select Case vv
Case "2|"
.EntireRow.Delete
Case "1|"
.Value = Mid(v, 12, 9999)
Case "0|"
.Clear
End Select
End With
Next i
End Sub
如果您的记录不是固定长度:
Sub qwerty()
Dim i As Long, v As String
For i = 1000 To 4 Step -1
With Cells(i, "H")
v = .Value
If InStr(1, v, "|") > 0 Then
Select Case Split(v, "|")(1)
Case "2"
.EntireRow.Delete
Case "1"
.Value = Split(v, "|")(2)
Case "0"
.Clear
End Select
End If
End With
Next i
End Sub
答案 1 :(得分:0)
删除数字1之前的所有内容,包括“|”字符。
myCell.Value = Right(myCell.Value, Len(myCell.Value) - InStr(myCell.Value, "1") + 1)
从您对问题的解释来看,您似乎正在混合*|1|*
和*|2|*
的解决方案。