2011-10-13 30 views
0

所以我一直在使用一些宏编码基于一列中的值过滤行。这对我在一般意义上所做的工作很有效,但我需要做一些更具体的事情,以相同的东西。我一直用的就是遵循这个:根据前四位数字和后四位数字过滤一行

Dim c As Range, x As Integer 
'other code here 
Set c = shtMaster.Range("Y5") 'Start search in Row 5 
'other code here 
While Len(c.Value) > 0 
     'If value in column Y ends with specified value,copy to report sheet 
     If c.Value Like "*2130" Or c.Value Like "*0853" Then 
'rest of macro follows 

我一直在试图乱用。如果行,这样我可以的前四个和后四位数字加条件,而不是基于上次只是用值四。例如,我可能想要在列Y中搜索前四位数字为“1234 *”但后四位数字不是“* 5678”的所有值。所以,如果我有一个电子表格:

 Column Y 

行1 12345678
行2 12341234
行3 12340000

那就拉行2和3而不是第1行。我想要使用上面的结构,因为这是一切都已经写好,但我似乎无法得到正确的语法。我想用我已经写过的结构做什么?如果是这样,有什么建议?谢谢。

回答

3
If c.Value Like "1234*" And Not c.Value Like "*5678" Then 

'Values start with 1234 and do not end in 5678. 

End If 
+0

我不知道为什么,但这根本不起作用。这是我开始的,但它不会像你想象的那样拉行。我尝试过使用圆括号和重新组合行,但它不会拉动它应该的行。 – Jon

+0

它的一些不良数据回退的例子是什么? – N0Alias

+0

大声笑。我想到了。我猜想同时在不同的编码上工作太多。我正在处理的其他内容使用相同的基础来过滤数据,但使用多个.values。这实际上的确如你所想的那样工作。我把d.value和c.value混合在一起,所以当然不会拖出它应该做的。 :p – Jon