2015-04-22 3 views
1

У меня есть код VBA для условного форматирования.Преобразование кода VBA для запуска в vbscript

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, _ 
    Formula1:="=$I$10", Formula2:="=$J$10" 
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
With Selection.FormatConditions(1).Interior 
    .PatternColorIndex = xlAutomatic 
    .Color = 255 
    .TintAndShade = 0 
End With 
    Selection.FormatConditions(1).StopIfTrue = False 
End Sub 

У меня есть VBScript, который создает таблицу Excel, и мне нужно, чтобы применить этот код VBA в ячейку листа Excel, как он будет создан. У вас проблемы с запуском. Я знаю, что нужно качнуть фактические значения констант первенствовать, но есть больше, я просто не

Что я сделал до сих пор

 priceRange = "K"&rowNum + 2 
    objWorkSheet.Range(priceRange).FormatConditions.Add Type:=1, Operator:=2, Formula1:="=$I$"&finalRowNum + 1&"", Formula2:="=$J$"&finalRowNum + 1&"" 
    objWorkSheet.Range(priceRange).FormatConditions(objExcel.Selection.FormatConditions.Count).SetFirstPriority 
    objWorkSheet.Range(priceRange).FormatConditions(1).Interior.PatternColorIndex = -4105 
    objWorkSheet.Range(priceRange).FormatConditions(1).Interior.Color = 255 
    objWorkSheet.Range(priceRange).FormatConditions(1).Interior.TintAndShade = 0 
    objWorkSheet.Range(priceRange).FormatConditions(1).StopIfTrue = False 

мне это нужно, чтобы применить условное форматирование к конкретной ячейке (один я определен как priceRange)

+0

вы можете разместить больше кода? Я вижу, что вы часто используете «Selection», что может вызвать ошибки (вы хотите [избегать] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel- vba-macros), используя «select», когда это возможно). – BruceWayne

+0

@ user3578951 Это созданный макрос vba. Вместо выбора мне нужно сделать его применимым к определенной строке, поскольку объект excel скрыт, пока он не завершит сценарий. Я отредактирую то, что я сделал, но я знаю, что это неправильно. Я получил константы, но я не уверен, куда идти оттуда. – asdfasfd

+0

Вы получите дополнительную помощь, если вы разместите код для минимального, полного, проверяемого примера (http://stackoverflow.com/help/mcve) и объясните, какой результат вы ожидаете, и какой результат вы получите. – Joe

ответ

2

UNTESTED:

Dim rng, fc, rowNum, finalRowNum, objWorkSheet 

'... 
'... 
Set rng = objWorkSheet.Range("K" & rowNum + 2) 

'vbscript doesn't support named arguments, only positional 
Set fc = rng.FormatConditions.Add(1, 2, _ 
           "=$I$" & finalRowNum, _ 
           "=$J$" & finalRowNum) 
fc.SetFirstPriority 

With fc.Interior 
    .PatternColorIndex = -4105 
    .Color = 255 
    .TintAndShade = 0 
End With 

fc.StopIfTrue = False 
+0

, который сработал, большое вам спасибо – asdfasfd

Смежные вопросы