下面是我的代码片段,它读取一些单元格并将它们串在一起如何我想要的。我想忽略层数“COL1”删除重复项,而忽略字符串的开头
输入重复的功能时,要删除的重复可能是
Layer 1: 25 xs 50 attaches at 6.98m and exhausts at 8.35m
Layer 2: 100 xs 75 attaches at 8.35m and exhausts at 13.5m
Layer 3: 44 xs 175 attaches at 13.5m and exhausts at 15.85m
Layer 4: 144 xs 175 attaches at 13.5m and exhausts at 21.43m
Layer 5: 148 xs 319 attaches at 21.43m and exhausts at 30.55m
Layer 6: 25 xs 50 attaches at 6.98m and exhausts at 8.35m
Layer 7: 100 xs 75 attaches at 8.35m and exhausts at 13.5m
Layer 8: 40 xs 35 attaches at 6.04m and exhausts at 8.35m
Layer 9: 65 xs 75 attaches at 8.35m and exhausts at 11.67m
Layer 9: 25 xs 50 attaches at 6.98m and exhausts at 8.35m
Layer 10: 100 xs 140 attaches at 11.67m and exhausts at 17.m
Layer 11: 148 xs 240 attaches at 17.m and exhausts at 25.51m
Layer 12: 162 xs 140 attaches at 11.67m and exhausts at 20.46m
Layer 13: 100 xs 35 attaches at 6.04m and exhausts at 11.41m
Layer 14: 65 xs 75 attaches at 8.35m and exhausts at 11.67m
Layer 14: 15 xs 35 attaches at 6.04m and exhausts at 6.98m
Layer 15: 25 xs 50 attaches at 6.98m and exhausts at 8.35m
Layer 16: 65 xs 75 attaches at 8.35m and exhausts at 11.67m
在理想情况下返回
Layer 1: 25 xs 50 attaches at 6.98m and exhausts at 8.35m
Layer 2: 100 xs 75 attaches at 8.35m and exhausts at 13.5m
Layer 3: 44 xs 175 attaches at 13.5m and exhausts at 15.85m
Layer 4: 144 xs 175 attaches at 13.5m and exhausts at 21.43m
Layer 5: 148 xs 319 attaches at 21.43m and exhausts at 30.55m
Layer 8: 40 xs 35 attaches at 6.04m and exhausts at 8.35m
Layer 9: 65 xs 75 attaches at 8.35m and exhausts at 11.67m
Layer 10: 100 xs 140 attaches at 11.67m and exhausts at 17.m
Layer 11: 148 xs 240 attaches at 17.m and exhausts at 25.51m
Layer 12: 162 xs 140 attaches at 11.67m and exhausts at 20.46m
Layer 13: 100 xs 35 attaches at 6.04m and exhausts at 11.41m
Layer 14: 15 xs 35 attaches at 6.04m and exhausts at 6.98m
的代码不仅这一点,如果COL1被用一个数字代替,并且列号相同,从而在分割时甚至可以使字符串。
For Each cell In wb.Sheets("RP Analysis").Range("F5:F" & lastRow)
RSet col1 = WorksheetFunction.RoundDown(cell.Value, 2)
RSet col2 = WorksheetFunction.RoundDown(cell.Offset(0, 2).Value/1000000, 2)
RSet col3 = WorksheetFunction.RoundDown(cell.Offset(0, 3).Value/1000000, 2)
RSet col4 = Format$(WorksheetFunction.RoundDown(cell.Offset(0, 10).Value, 2), "#.##")
RSet col5 = Format$(WorksheetFunction.RoundDown(cell.Offset(0, 11).Value, 2), "#.##")
RSet col6 = Format$(WorksheetFunction.RoundDown(cell.Offset(0, 6).Value, 2), "#.##")
RSet col7 = Format$(WorksheetFunction.RoundDown(cell.Offset(0, 7).Value, 2), "#.##")
RMS = RMS & "Layer " & col1 & ":" & col2 & " xs " & col3 & " attaches at " & col4 & "m and exhausts at " & col5 & "m" & vbLf
AIR = AIR & "Layer " & col1 & ":" & col2 & " xs " & col3 & " attaches at " & col6 & "m and exhausts at " & col7 & "m" & vbLf
Next cell
For Each cell In wb.Sheets("RP Analysis").Range("A9:A" & 19)
RSet col9 = Format$(WorksheetFunction.RoundDown(cell.Value, 2), "#####")
gucurve = gucurve & col9 & ":- " & Format(cell.Offset(0, 2).Value/cell.Offset(0, 1).Value, "Percent") & vbLf
Next cell
AIRmod = DeDupeString(AIR, vbLf)
RMSmod = DeDupeString(RMS, vbLf)
TextBox1.Value = "RP years RMS/AIR difference" & vbLf & gucurve & vbLf & RMSmod & vbLf & AIRmod
End Function
下面是我的函数删除重复,完美的作品
Function DeDupeString(ByVal sInput As String, Optional ByVal sDelimiter As String = ",") As String
Dim varSection As Variant
Dim sTemp As String
For Each varSection In Split(sInput, sDelimiter)
If InStr(1, sDelimiter & sTemp & sDelimiter, sDelimiter & varSection & sDelimiter, vbTextCompare) = 0 Then
sTemp = sTemp & sDelimiter & varSection
End If
Next varSection
DeDupeString = Mid(sTemp, Len(sDelimiter) + 1)
End Function
在功能区选项卡中,使用数据| RemoveDuplicates和获取对话框时,取消选中第一列 –
如果你想要一个VBA代码然后简单地记录一个宏。 –
我不确定我是否理解了预期输出的重复条件。第7层和第16层是否分别与第2层和第9层不重复? – Comintern