2017-07-19 9 views
0

私のcsvをExcelに変換する1つのVBSがあります。 私のCSVには「!」のような文字がいくつかあります。 Excelに変換してからその文字を持っているセルに黄色で表示したい。カラーVBScriptのセル値に基づくExcel

Sample.CSV:

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

要件:への2つの引数を必要とします:Excelに変換した後、私はE2とD3セルを必要とするが イエロー

MyScript.vbsようでなければなりません実行する

cscript C:\Test\MyScript.vbs \\C:\Test\Sample.CSV \\C:\Test\Sample.xlsx 

ここに元のスクリプトです

'====================================== 
' Convert CSV to XLS 
' 
' arg1: source - CSV path\file 
' arg2: target - Excel path\file 
'====================================== 

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 

enter image description here

答えて

1

あなたのコードのループ 'の' 以下を含めます。 「!」を検索します。細胞を黄色に着色する。私はNotepad ++エディタでこれをコーディングしました。したがって、少しのデバッグが必要な場合があります。

'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 
+0

こんにちは、このコードサンプルのおかげで... 私の要件に完全に取り組んでいます。 複数の検索値を渡すかどうかを知りたければ、私はここで何をしますか? つまり、一部のセル値はNOT、NO、NONE、および "!"だから私が強調したいと思っているすべてのセル。 – goldenbutter

+0

データがどのように見えるかのサンプルを提供してください –

+0

参照してください。私のポストに1つのサンプル出力を追加しました。ここで、セルの値はNOT、NO、または!そのセルは黄色になります – goldenbutter

関連する問題