Frage : VBS Index im Makro, zum der mehrfachen Linien von Daten zu ziehen brauchte von der Akte

Ich habe eine .ini Akte, die ein Warenbestand eines PC ist.  Ein Makro ist verursacht worden, um Info es herauszuziehen und ein XLS file

It zu bevölkern ist adaequat, wenn es nur eine Linie in der Akte für bestimmtes Info gibt.  Jedoch möchten wir auch alle Drucker sehen eine Person has.

In die Akte, es schauen like
----------------------
MappedPrinter .......: PMT: = Tesia PMT
MappedPrinter .......: TesiaPort: = Tesia
MappedPrinter .......: NVM5: = zum Dentrix Dokument Center
MappedPrinter senden .......: XPSPort: = Dokument Writer
MappedPrinter Microsoft-XPS .......: Microsoft dokumentieren Darstellung-Verfasser-Hafen: = Microsoft Office-Dokumenten-Bild Writer
MappedPrinter .......: HPFAX: = HP LaserJet 3050_3055_3390_3392 Fax
MappedPrinter .......: DOT4_001 = HP LaserJet 3050 Reihe PCL 6 (Kopie 1)
MappedPrinter .......: IP_ 170.11.115.21 = Canon iR5000-6000-L1 PCL5e CP Barn
--------------

abhängig von dort Person, können sie mehr oder weniger Drucker haben.


When I gründete den Code, der dem anderen fields
ähnlich ist------------------
, wenn Sie (xR, 13) = „MappedPrinter“ Then

Zellen (zZ, 23) = rechtes verlassen werden (xR, Len (xR) - 22)

Ende If
--------------------
This anzeigt nur das Letzte des abgebildeten Druckerinfos von „IP_ 170.11.115.21 = Canon iR5000-6000-L1 PCL5e CP-Stall "

So, das es sich auf sich schlingen muss, jedes Mal wenn es MappedPrinter sah und stellt eine Schnur her, die wächst (irgendeine Art des Separatortextes möglicherweise haben hinzufügte zwischen dem info.

Up an der Oberseite des VB Indexes, ich haben verursacht eine Variable von „printerInfo, wie Schnur "

Below der VBS Code des Macro
ist
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:
6:
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:
Option ausdrücklich

 

Allgemeines xR, zZ als lang, die daRows, die als ganze Zahl, memSubString als Schnur, printerInfo als Schnur, startPos als ganze Zahl, i als ganze Zahl memoryTotal sind, driveSize als Schnur, die als Schnur, percentFree als ganze Zahl freeSpace ist

 

VorgetFields ()


    daRows = Application.CountA (ActiveSheet.Range („A: “))   '# von den Reihen feststellen

    Für zZ = gründeten 2 zu den daRows 'Schleife

        Geöffnete Zellen (zZ, 1) für den Eingangs-Zugang gelesen als 'geöffnete gelesen zu werden Akte #6

        Tun während nicht EOF (6)

            Eingang #6, xR zeichnen 'lesen eine Linie
                 
                 Wenn Sie (xR, 13) = „InventoryDate“ dann verlassen werden

                    Zellen (zZ, 2) = recht (xR, Len (xR) - 22)

                Beenden wenn
            
                Wenn Sie (xR, 12) = „Computerbezeichnung“ dann verlassen werden
                    
                    Zellen (zZ, 3) = recht (xR, Len (xR) - 22)

                Beenden wenn

                Wenn Sie (xR, 14) = „CsSerialNumber“ dann verlassen werden

                    Zellen (zZ, 4) = recht (xR, Len (xR) - 22)

                Beenden wenn
                
                Wenn Sie (xR, 15) = „CsComputerModel“ dann verlassen werden

                    Zellen (zZ, 5) = recht (xR, Len (xR) - 22)

                Beenden wenn
                
                Wenn Sie verlassen werden (xR, 8) = „username“ dann

                    Zellen (zZ, 6) = recht (xR, Len (xR) - 22)

                Beenden wenn


                Wenn Sie (xR, 11) = „PrimaryUser“ dann verlassen werden
                    
                    Zellen (zZ, 7) = recht (xR, Len (xR) - 22)

                Beenden wenn

                Wenn Sie verlassen werden (xR, 8) = „Position“ dann

                    Zellen (zZ, 8) = recht (xR, Len (xR) - 22)

                Beenden wenn
                
                Wenn Sie verlassen werden (xR, 7) = „Firma“ dann

                    Zellen (zZ, 9) = recht (xR, Len (xR) - 22)

                Beenden wenn
                
                Wenn Sie verlassen werden (xR, 10) = „Abteilung“ dann

                    Zellen (zZ, 10) = recht (xR, Len (xR) - 22)

                Beenden wenn

                Wenn Sie verlassen werden (xR, 7) = „CpuName“ dann

                    Zellen (zZ, 11) = recht (xR, Len (xR) - 22)

                Beenden wenn

                Wenn Sie (xR, 13) = „CpuClockSpeed“ dann verlassen werden

                    Zellen (zZ, 12) = recht (xR, Len (xR) - 22)
                        

                Beenden wenn

'Placeholder für Drive0 und Drive1


Wenn Sie (xR, 24) = „HardDrive ........... verlassen werden: C: “ Dann
                
                    'Variablen initialisieren
                    driveSize = ""

                    'Findet die Ausgangsposition der Festplattenlaufwerkgröße
                    startPos = InStr (1, xR, „size=")
                    startPos = startPos + 5
                    
                    Tun, während Asc (mittleres (xR, startPos, 1)) >= 48 und _
                        Asc (mittleres (xR, startPos, 1)) <= 57 oder _
                        Asc (mittlere (xR, startPos, 1)) = 45
                        
                        driveSize = driveSize u. mittler (xR, startPos, 1)
                        startPos = startPos + 1
                    Schleife
                                       
                    Wenn IsNumeric (driveSize), dann
                        driveSize = (driveSize)
                    Beenden wenn
                    
                    
                    Zellen (zZ, 16) = (),/1024/1024/1024 driveSize

                Beenden wenn
                                      
           Wenn Sie (xR, 24) = „HardDrive ........... verlassen werden: C: “ Dann
                
                    'Variablen initialisieren
                    freeSpace = ""
                
                
                    'Findet die Ausgangsposition des freien Raumes des Festplattenlaufwerks
                    startPos = InStr (1, xR, „free=")
                    startPos = startPos + 5
                    
                    Tun, während Asc (mittleres (xR, startPos, 1)) >= 48 und _
                        Asc (mittleres (xR, startPos, 1)) <= 57 oder _
                        Asc (mittlere (xR, startPos, 1)) = 45
                        
                        freeSpace = freeSpace u. mittler (xR, startPos, 1)
                        startPos = startPos + 1
                        
                        Wenn startPos > Len (xR) dann herausnehmen, tun
                    Schleife
                                       
                    Wenn IsNumeric (freeSpace) dann
                        freeSpace = (freeSpace)
                       Zellen (zZ, 17) = (freeSpace)/1024/1024/1024
                    Beenden wenn
                    
                Beenden wenn

        Wenn Sie verlassen werden (xR, 6) = „OsName“ dann

                    Zellen (zZ, 18) = recht (xR, Len (xR) - 22)

                Beenden wenn


                Wenn Sie (xR, 43) = „InstalledApp ........ verlassen werden: Microsoft Office Stan“ dann

                    Zellen (zZ, 19) = recht (xR, Len (xR) - 22)

                Beenden wenn

                Wenn Sie (xR, 43) = „InstalledApp ........ verlassen werden: Microsoft Office-Prof“ dann

                    Zellen (zZ, 20) = recht (xR, Len (xR) - 22)

                Beenden wenn


                Wenn Sie verlassen werden (xR, 9) = „IP address“ dann

                    Zellen (zZ, 21) = recht (xR, Len (xR) - 22)

                Beenden wenn


                Wenn Sie verlassen werden (xR, 9) = „SAVClient“ dann

                    Zellen (zZ, 22) = recht (xR, Len (xR) - 22)

                Beenden wenn
                
                Wenn Sie (xR, 13) = „MappedPrinter“ dann verlassen werden

                    Zellen (zZ, 23) = recht (xR, Len (xR) - 22)

                Beenden wenn
                

                Wenn Sie (xR, 21) = „MemoryModule ........ verlassen werden: “ Dann
                    'Variablen initialisieren
                    memSubString = ""
                    
                    'Findet die Ausgangsposition der Gedächtnismenge
                    startPos = InStr (1, xR, „size=")
                    startPos = startPos + 5
                    
                    Tun, während Asc (mittleres (xR, startPos, 1)) >= 48 und _
                        Asc (mittleres (xR, startPos, 1)) <= 57 oder _
                        Asc (mittlere (xR, startPos, 1)) = 45
                        
                        memSubString = memSubString u. mittler (xR, startPos, 1)
                        startPos = startPos + 1
                    Schleife
                    
                    Wenn IsNumeric (memSubString) dann
                        memoryTotal = memoryTotal + CInt (memSubString)
                    Beenden wenn
                    Zellen (zZ, 13) = ABS (memoryTotal)

                Beenden wenn


        Schleife

        Nahes #6 'nah die Akte
        memoryTotal = 0
    
    'Auf folgende Linie zunächst sich bewegen
    

    'Spaltenüberschriften addieren
    
    Zellen (1, 2) = „ReportDate“
    Zellen (1, 3) = „Computerbezeichnung“
    Zellen (1, 4) = „Seriennummer“
    Zellen (1, 5) = „Modell“
    Zellen (1, 6) = „username“
    Zellen (1, 7) = „PrimaryUser“
    Zellen (1, 8) = „Position“
    Zellen (1, 9) = „Firma“
    Zellen (1, 10) = „Abteilung“
    Zellen (1, 11) = „CPUType“
    Zellen (1, 12) = „ClockSpeed“
    Zellen (1, 13) = „Gedächtnis“
    Zellen (1, 14) = „Drive0“
    Zellen (1, 15) = „Drive1“
    Zellen (1, 16) = „CSize“
    Zellen (1, 17) = „CFree“
    Zellen (1, 18) = „OperSystem“
    Zellen (1, 19) = „OfficeStandard“
    Zellen (1, 20) = „OfficePro“
    Zellen (1, 21) = „IP address“
    Zellen (1, 22) = „Antivirus“
    Zellen (1, 23) = „MappedPrinter“
    
    MsgBox „beendete zu verarbeiten!“

Enden-Unterseeboot

Antwort : VBS Index im Makro, zum der mehrfachen Linien von Daten zu ziehen brauchte von der Akte

Ihr ersetzen, wenn Aussage mit dem below Stückchen… dieses einen Semikolonbegrenzer benutzt.

Sie konnten dieses mit jedem Ihrer Abschnitte wiederholen.
1:
2:
3:
4:
5:
6:
7:
Wenn Sie (xR, 13) = „MappedPrinter“ dann verlassen
                Wenn Zellen (zZ, 23) = "" dann
                    Zellen (zZ, 23) = recht (xR, Len (xR) - 22)
                Sonst
                    Zellen (zZ, 23) = Zellen (zZ, 23) u. „; “ U. recht (xR, Len (xR) - 22)
                Beenden wenn
            Beenden wenn
Weitere Lösungen  
 
programming4us programming4us