Vraag : Manuscript VBS in Macro om veelvoudige lijnen van gegevens te trekken nodig van dossier

Ik heb een .ini dossier dat een inventaris van een PC is.  Een macro is gecre�ërd om info te trekken uit het en een XLS file

It te bevolken werkt boete wanneer er slechts één lijn in het dossier voor bepaalde info is.  Nochtans, willen wij ook alle printers zien een persoon has.

In het dossier, kijkt het like

MappedPrinter .......: PMT: = Tesia PMT
MappedPrinter .......: TesiaPort: = Tesia
MappedPrinter .......: NVM5: = Verzend naar Dentrix Document Center
MappedPrinter .......: XPSPort: = Van Microsoft Xps- Document Writer
MappedPrinter .......: De Haven van de Schrijver van de Weergave van het Document van Microsoft: = Het Beeld Writer
MappedPrinter van het Document van Microsoft Office .......: HPFAX: = PK LaserJet 3050_3055_3390_3392 Fax
MappedPrinter .......: DOT4_001 = PK LaserJet 3050 Reeksen PCL 6 (Exemplaar 1)
MappedPrinter .......: IP_ 170.11.115.21 = Canon iR5000-6000-L1 PCL5e CP Barn


afhankelijk van daar persoon, kunnen zij printers min of meer hebben.


When I opstellingscode gelijkend op andere fields

indien Verlaten (xR, 13) = de Cellen van „MappedPrinter“ Then

(zZ, 23) = Juist (xR, Len (xR) - 22)

Eind If

This toont slechts laatste van In kaart gebrachte info van de Printer van „IP_ 170.11.115.21 = de Schuur van Canon iR5000-6000-L1 PCL5e CP "

So het aan lijn op zich vereist telkens als het MappedPrinter zag, creërend een koord dat zal groeien (hebben misschien één of andere soort binnen toegevoegde separatortekst - tussen info.

Up bij de bovenkant van het manuscript VB, heb ik een variabele van „printerInfo gecre�ërd aangezien het Koord "

Below de code VBS van Macro
is
" codeBody "
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:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
expliciete Option Openbare xR, zZ zo lang, daRows, memoryTotal zoals Geheel, die als Koord, printerInfo als Koord, startPos als Geheel, I als Geheel het memSubString, als Koord driveSize, freeSpace als Koord, percentFree als Geheel Sub getFields () daRows = Application.CountA (ActiveSheet.Range („A: “)) 'Bepaal # van rijen Voor zZ = 2 aan lijn van de daRows de 'Opstelling Open Cellen (zZ, 1) Voor de Toegang van de Input die als #6 'Open te lezen dossier wordt gelezen Doe terwijl niet EOF (6) De Input van de lijn #6, xR 'las een lijn Indien Weggegaan (xR, 13) = „InventoryDate“ toen Cellen (zZ, 2) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 12) = „Computername“ toen Cellen (zZ, 3) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 14) = „CsSerialNumber“ toen Cellen (zZ, 4) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 15) = „CsComputerModel“ toen Cellen (zZ, 5) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 8) = „Gebruikersbenaming“ toen Cellen (zZ, 6) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 11) = „PrimaryUser“ toen Cellen (zZ, 7) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 8) = „Plaats“ toen Cellen (zZ, 8) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 7) = „Bedrijf“ toen Cellen (zZ, 9) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 10) = „Afdeling“ toen Cellen (zZ, 10) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 7) = „CpuName“ toen Cellen (zZ, 11) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 13) = „CpuClockSpeed“ toen Cellen (zZ, 12) = Juist (xR, Len (xR) - 22) Eind als 'Placeholder voor Drive0 en Drive1 Indien Weggegaan (xR, 24) = „HardDrive ...........: C: “ Toen 'Initialiseer variabelen driveSize = "" 'Vindt de beginnende positie van de harde aandrijvingsgrootte startPos = InStr (1, xR, „size=“) startPos = startPos + 5 Doe terwijl Medio Asc ((xR, startPos, 1)) >= 48 en _ Medio Asc ((xR, startPos, 1)) <= 57 of _ Medio Asc ((xR, startPos, 1)) = 45 driveSize = driveSize & Medio (xR, startPos, 1) startPos = startPos + 1 Lijn Als IsNumeric (driveSize) toen driveSize = (driveSize) Beëindig als Cellen (zZ, 16) = (driveSize)/1024/1024/1024 Beëindig als Indien Weggegaan (xR, 24) = „HardDrive ...........: C: “ Toen 'Initialiseer variabelen freeSpace = "" 'Vindt de beginnende positie van de harde aandrijvings vrije ruimte startPos = InStr (1, xR, „free=“) startPos = startPos + 5 Doe terwijl Medio Asc ((xR, startPos, 1)) >= 48 en _ Medio Asc ((xR, startPos, 1)) <= 57 of _ Medio Asc ((xR, startPos, 1)) = 45 freeSpace = freeSpace & Medio (xR, startPos, 1) startPos = startPos + 1 Als startPos > (xR) dan de Uitgang Len Lijn Als (freeSpace) IsNumeric toen freeSpace = (freeSpace) Cellen (zZ, 17) = (freeSpace)/1024/1024/1024 Eind als Eind als Indien Weggegaan (xR, 6) = „OsName“ toen Cellen (zZ, 18) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 43) = „InstalledApp ........: Microsoft Office Stan“ toen Cellen (zZ, 19) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 43) = „InstalledApp ........: Prof. van Microsoft Office“ toen Cellen (zZ, 20) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 9) = „IPAddress“ toen Cellen (zZ, 21) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 9) = „SAVClient“ toen Cellen (zZ, 22) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 13) = „MappedPrinter“ toen Cellen (zZ, 23) = Juist (xR, Len (xR) - 22) Eind als Indien Weggegaan (xR, 21) = „MemoryModule ........: “ Toen 'Initialiseer variabelen het memSubString = "" 'Vindt de beginnende positie van het geheugenbedrag startPos = InStr (1, xR, „size=“) startPos = startPos + 5 Doe terwijl Medio Asc ((xR, startPos, 1)) >= 48 en _ Medio Asc ((xR, startPos, 1)) <= 57 of _ Medio Asc ((xR, startPos, 1)) = 45 het memSubString = memSubString & Medio (xR, startPos, 1) startPos = startPos + 1 Lijn Als IsNumeric (het memSubString) toen memoryTotal = memoryTotal + CInt (het memSubString) Eind als Cellen (zZ, 13) = (memoryTotal) Abs Eind als Lijn Dichte #6 'Dicht het dossier memoryTotal = 0 Daarna 'Beweging aan volgende lijn 'Voeg kolomkopballen toe Cellen (1, 2) = „ReportDate“ Cellen (1, 3) = „ComputerName“ Cellen (1, 4) = „Serienummer“ Cellen (1, 5) = „Model“ Cellen (1, 6) = „Gebruikersbenaming“ Cellen (1, 7) = „PrimaryUser“ Cellen (1, 8) = „Plaats“ Cellen (1, 9) = „Bedrijf“ Cellen (1, 10) = „Afdeling“ Cellen (1, 11) = „CPUType“ Cellen (1, 12) = „ClockSpeed“ Cellen (1, 13) = „Geheugen“ Cellen (1, 14) = „Drive0“ Cellen (1, 15) = „Drive1“ Cellen (1, 16) = „CSize“ Cellen (1, 17) = „CFree“ Cellen (1, 18) = „OperSystem“ Cellen (1, 19) = „OfficeStandard“ Cellen (1, 20) = „OfficePro“ Cellen (1, 21) = „IPAddress“ Cellen (1, 22) = „AntiVirus“ Cellen (1, 23) = „MappedPrinter“ MsgBox „Gebeëindigde Verwerking!“ Sub van het eind

Antwoord : Manuscript VBS in Macro om veelvoudige lijnen van gegevens te trekken nodig van dossier

Vervang uw als de verklaring met het onderstaande fragment… dit een puntkommaafbakening zal gebruiken.

U kon dit met elk van uw secties herhalen.
1:
2:
3:
4:
5:
6:
7:
Indien Weggegaan (xR, 13) = „MappedPrinter“ toen
                Als Cellen (zZ, 23) = "" toen
                    Cellen (zZ, 23) = Juist (xR, Len (xR) - 22)
                Anders
                    Cellen (zZ, 23) = Cellen (zZ, 23) & „; “ & Juist (xR, Len (xR) - 22)
                Eind als
            Eind als
Andere oplossingen  
 
programming4us programming4us