我有多行具有不同的字符串,我要在其中按此顺序过滤数据
“然后输入数字”,即 DI07493A 。
列值如下:
01LICIN
05LICIN
AARHUSK
DI07493A
ABS16
DICOFDI
DI94193A
我正在尝试这样。
sheet1.Range("A1:A" & LastRow).AutoFilter Field:=4, Criteria1:= DI & #, Operator:=xlFilterValues
它不起作用。有没有办法得到这个结果?
答案 0 :(得分:3)
尝试以下操作:
有一列(例如A1:A8)包含标题(例如,称为Header),然后是值。
然后在B列上具有相同的标题,并且B2:B11中的值分别为DI0*
,DI1*
,DI2*
,DI3*
,DI4*
, DI5*
,DI6*
,DI7*
,DI8*
,DI9*
。
然后将AdvancedFilter应用于代码:
Range("A1:A8").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("B1:B11").
答案 1 :(得分:2)
第二次尝试.Find
Crncy Spread Duration Adj_EUR Adj_USD
0 EUR 100 1.2 12 22
1 nan nan nan 0.0 0.0
...
正如我所说的...超级丑陋,但也许您可以了解一下我想完成的事情
答案 2 :(得分:1)
尝试以下代码:
Sub Filter()
Dim lastRow As Long, i As Long, ws As Worksheet
Set ws = Worksheets("sheet_name")
With ws
lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 1 To lastRow
'this conition checks if cell contains "DI" followed by a digit
If Not Left(.Cells(i, 1).Value, 3) Like "DI[0-9]" Then
.Rows(i).Hidden = True
End If
Next
End With
End Sub
答案 3 :(得分:0)
您只需要在子字符串的相关部分添加一个星号即可。
在您的代码中,更改以下内容:Criteria1 := DI*