Beim ändern der schriftart Farbe in allen Zellen einer Liste der excel-sheets
Hey, ich habe versucht, ändern Sie die Schriftfarbe der Zellen in einer Liste der excel-Blätter von rot zu schwarz. Der code verwendet eine txt-Datei, die zum Lesen der Datei die Pfade aus, dann setzt Sie in ein array. Dann mit dem array prüfen Sie die excel-Tabelle für die rote Schriftfarbe und änderungen, die es zu schwarz. Leider, es funktioniert nicht, und ich habe SEHR beschränkt in meinem wissen von VBscript-Debuggen so kann jeder einen Blick und sehen, was habe ich falsch gemacht?
REM Attribute VB_Name = "Module1"
Sub SimpleMacro()
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
("pathlist.txt", ForReading)
Do Until objTextFile.AtEndOfStream
strNextLine = objTextFile.Readline
arrServiceList = Split(strNextLine , ",")
Wscript.Echo "Server name: " & arrServiceList(0)
For i = 1 to Ubound(arrServiceList)
Wscript.Echo "Service: " & arrServiceList(i)
Next
Loop
Set objWorkbook = objExcel.Workbooks.Open(arrServiceList)
Set objWorksheet = objWorkbook.Worksheets(1)
RedColor = RGB(255, 0, 0)
BlackColor = RGB(0, 0, 0)
'Get number of rows in the specified column
RowsCount = Range("A1" *.End(xlDown)).Rows.Count
'Select cell
Range("A1" *.End(xlDown)).Select
'Loop the cells
For x = 1 To RowsCount
If ActiveCell.Font.Color = RedColor Then
'Change the text color
ActiveCell.Font.Color = BlackColor
Else
ActiveCell.Font.Color = BlackColor
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub
- Was meinst du mit "funktioniert nicht"? Besonderheiten bitte?
xlDown
unbekannt sein wird, wie Sie die späte Bindung, fügen SieConst xlDown = -4121
nachConst ForReading = 1
. Abgesehen von, die beschreiben, wie es ausfällt.- Sorry für die so vage. Wenn ich es laufen lasse, es ändert sich nicht die schriftart, die Farben von rot zu schwarz. So gibt es eine Liste von Datei-Pfade in pathlist.txt es sollte Lesen Sie die Dateipfade aus dem array und dann gehen Sie hinein und suchen Sie nach roten schriftart und ändern Sie Sie in schwarz.
- Um zu sehen, die Fehler, wenn überhaupt, öffnen Sie excel, drücken Sie ALT+F11, füge den obigen code Sperrung der Linien mit Bezug zu objExcel. also
Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True
auszulassen und Verweise aufobjExcel
aus dem code.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin davon ausgegangen, dass Sie die schriftart ändern wollen Farben, die nur in der Spalte A. Das folgende korrekt ist VBA, die ich hoffe, die richtigen werden VBScript als wll.
Können Sie nicht verwenden, so etwas wie
*.End(xlDown)
. Nicht nur ist die Konstante undefiniert in VBScript, aber es gibt auch keine Keywords/variable*
. Sie können den schriftart, die Farbe einer bestimmten Spalte zu schwarz so:oder die Schrift Farbe von den verwendeten Bereich wie diesem:
Für das ändern der Farbe aller Zellen, in denen die Schriftfarbe ist rot, die Sie verwenden können, so etwas wie dieses:
Andere Sache: können Sie öffnen mehrere Arbeitsmappen, die mit einem array von Pfaden:
aber in diesem Fall sollte das array enthält nur die Pfade zu Excel-Arbeitsmappen, sonst nichts.
Werden Alle und nur die Zellen mit roten Schriften zur schwarzen Schrift. Und dies ohne die Verwendung einer Schleife oder einem Vergleich-Anweisungen, bietet sehr schnelle und zuverlässige code.
arrServiceList
so dass es geht durch den Pfad der Datei-Liste?RedColor = RGB(255, 0, 0)
Dann fertig mit meiner Antwort, aber fügen Sie die Arbeitsmappe und Arbeitsblatt (objWorkbook , objWorksheet) Verweise auf meine Bereiche.Dim lngLastFilePath As long
ist. Irgendwelche Ideen?