Fråga : VBA-hjälp

Hi förmiddagen för

I using kodifiera fäste för att filtrera 2 listboxes överträffar in.  Den fungerade för mig för, men nu, den ska för att inte filtrera och visa resultaten i ”den analys” arbetssedeln.  Den ska endast skärm den färdiga dataseten.  Vilka ändringar jag behöver att göra, så att kodifiera att ska filtrerar min dataset?
> för
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
" codeBody " " >Private underCommandButton3_Click för class= " för 1 därefter ws2.UsedRange.Clear ws1. [A1: AX1]. Kopiera destinationen: =ws2. [A16] Fastställd rng = ws1.Range (ws1. [A17], ws1.Cells (ws1.Rows.Count, ”A”). Avsluta (xlUp)) För varje cel i rng Om UCase (sList1) = "" eller InStr (sList1, ”,|” & cel. Värdera & ”,|”) <> 0 därefter Om UCase (sList2) = "" eller InStr (sList2, ”,|” & cel. Offset (0, 1). Värdera & ”,|”) <> 0 därefter cel. Resize (1, 50). Kopiera destinationen: =ws2.Cells (ws2.Rows.Count, ”A”). Avsluta (xlUp). Offset (1) Avsluta om Avsluta om Nästa cel Lasta av mig Application.ScreenUpdating = True Avsluta suben Privat Sub CommandButton4_Click () Lasta av mig Avsluta suben Privat Sub UserForm1_Initialize () ListBox1.Selected (0) = True ListBox2.Selected (0) = True Avsluta suben
" klar "

Svar : VBA-hjälp

Din funderare I kodifierar är att kopiera som är alla, ror på grund av th strukturerar av ”, om” nedanföra satser:

För varje cel i rng
  Om UCase (sList1) = "" eller InStr (sList1, ”,|” & cel. Värdera & ”,|”) <> 0 därefter
     Om UCase (sList2) = "" eller InStr (sList2, ”,|” & cel. Offset (0, 1). Värdera & ”,|”) <> 0 därefter
  cel. Resize (1, 50). Kopiera destinationen: =ws2.Cells (ws2.Rows.Count, ”A”). Avsluta (xlUp). Offset (1)
     Avsluta om
  Avsluta om
Nästa cel

I verkställa första ”om” hackor ro för att kopiera ANTINGEN, om slist1 är tom, eller om det finns en match. Understödja ”, om” gör samma för slist2.

Min gissning är vad du ämnade var något något liknande den nedanföra kodifiera:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
För varje cel i rng
  'om slist1 är tom, kontrollen slist2:
  Om UCase (sList1) = "" därefter
     Om InStr (sList2, ”,|” & cel. Offset (0, 1). Värdera & ”,|”) <> 0 därefter
     cel. Resize (1, 50). Kopiera destinationen: =ws2.Cells (ws2.Rows.Count, ”A”). Avsluta (xlUp). Offset (1)
     avsluta om
  annars
  'om slist1 inte är blankochecken för match i slist1
     om InStr (sList1, ”,|” & cel. Värdera & ”,|”) <> 0 därefter
     cel. Resize (1, 50). Kopiera destinationen: =ws2.Cells (ws2.Rows.Count, ”A”). Avsluta (xlUp). Offset (1)
     avsluta om
avsluta om

Nästa cel
Andra lösningar  
 
programming4us programming4us