Farbe Excel basierend auf Zellenwert in VBScript - Excel, VBA, CSV, VBScript

Ich habe eine VBS, die meine CSV zu Excel konvertieren. Jetzt meine CSV gibt es einige Zeichen wie "!" Ich möchte Gelb auf jene Zelle färben, die dieses Zeichen haben, nachdem ich in Excel konvertiert habe.

Beispiel.CSV:

 Name,Location,Phone,Comment1,Comment2
"ABC","Pune",123,"Expert Value","! Easy"
"XYZ","Kol",567,"! Expert value",Easy"

Voraussetzung: Nach dem Konvertieren nach Excel brauche ich E2 und D3 Cell sei wie Gelb

MyScript.vbs: benötigt zur Ausführung zwei Argumente

cscript C:TestMyScript.vbs \C:TestSample.CSV \C:TestSample.xlsx

Hier ist das ursprüngliche Skript

"======================================
" Convert CSV to XLS
"
" arg1: source - CSV pathfile
" arg2: target - Excel pathfile
"======================================

srccsvfile = Wscript.Arguments(0)
tgtxlsfile = Wscript.Arguments(1)

"Create Spreadsheet
"Look for an existing Excel instance.
On Error Resume Next " Turn on the error handling flag
Set objExcel = GetObject(,"Excel.Application")
"If not found, create a new instance.
If Err.Number = 429 Then  "> 0
Set objExcel = CreateObject("Excel.Application")
End If

objExcel.Visible = false
objExcel.displayalerts=false

"Import CSV into Spreadsheet
Set objWorkbook = objExcel.Workbooks.open(srccsvfile)
Set objWorksheet1 = objWorkbook.Worksheets(1)

"Adjust width of columns
Set objRange = objWorksheet1.UsedRange
objRange.EntireColumn.Autofit()
"This code could be used to AutoFit a select number of  columns
"For intColumns = 1 To 17
"    objExcel.Columns(intColumns).AutoFit()
"Next

"Make Headings Bold
objExcel.Rows(1).Font.Bold = TRUE

"Freeze header row
With objExcel.ActiveWindow
.SplitColumn = 0
.SplitRow = 1
End With
objExcel.ActiveWindow.FreezePanes = True

"Add Data Filters to Heading Row
objExcel.Rows(1).AutoFilter

"set header row gray
objExcel.Rows(1).Interior.ColorIndex = 15
"-0.249977111117893


"Save Spreadsheet, 51 = Excel 2007-2010
objWorksheet1.SaveAs tgtxlsfile, 51

"Release Lock on Spreadsheet
objExcel.Quit()
Set objWorksheet1 = Nothing
Set objWorkbook = Nothing
Set ObjExcel = Nothing

Bildbeschreibung hier eingeben

Antworten:

1 für die Antwort № 1

Fügen Sie die folgenden "For" -Schleifen in Ihren Code ein. Es wird nach "!" und färbe die Zelle gelb. Ich habe dies in Notepad ++ Editor codiert. Daher benötigen Sie möglicherweise ein wenig Debugging.

"set header row gray
objExcel.Rows(1).Interior.ColorIndex = 15
"-0.249977111117893

For intRowCounter = 2 to objWorksheet1.usedRange.Rows.Count "Skip header row
For intColumnCounter = 1 to objWorksheet1.usedRange.Columns.Count
If instr(1, objWorksheet1.Cells(intRowCounter, intColumnCounter).Value, "!", 1) > 0 Then
objWorksheet1.Cells(intRowCounter, intColumnCounter).Interior.ColorIndex = 6 "Shade of Yellow 27, 44 , 36 also can be used
End If
Next
Next


"Save Spreadsheet, 51 = Excel 2007-2010
objWorksheet1.SaveAs tgtxlsfile, 51