我需要一个excel的vba逻辑是:第一步删除E的第一个字符数据放在单元格G列;第二步当单元格G中包含了单元格F的数据则将他们相同部分删除后的数据放在单元格H列;第三步将H列中C+数字前面的字符删除
以下是一个可能的实现:
Sub process_data()
Dim last_row As Long
last_row = Cells(Rows.Count, "E").End(xlUp).Row
' Step 1
Range("G1:G" & last_row).FormulaR1C1 = "=MID(RC[-4],2,LEN(RC[-4])-1)"
' Step 2
Range("H1:H" & last_row).FormulaR1C1 = "=IF(ISNUMBER(SEARCH(RC[-2],RC[-1])),MID(RC[-1],LEN(RC[-2])+1,LEN(RC[-1])-LEN(RC[-2])),"""")"
' Step 3
Dim cell As Range
For Each cell In Range("H1:H" & last_row)
Dim i As Integer
For i = 1 To Len(cell.Value)
If Not IsNumeric(Mid(cell.Value, i, 1)) Then
cell.Value = Mid(cell.Value, i, Len(cell.Value) - i + 1)
Exit For
End If
Next i
Next cell
End Sub
这个VBA删除了E列的第一个字符,将结果放在了G列。然后,它在H列中查找F列中的数据,并删除它们相同部分后的内容。最后,它删除了H列中C+数字前面的字符。请注意,这个代码假定C+数字前面没有其他字符。如果这个假定不成立,你需要根据你的实际情况修改代码。
原文地址: https://www.cveoy.top/t/topic/bib6 著作权归作者所有。请勿转载和采集!