Что нового

Фоновой цвет ячейки в Excel

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Как установить фоновой цвет ячейки в Excel? :scratch:

Вот пример:

Код:
#include <Excel.au3>

$oExcel = _ExcelBookNew(1)

_ExcelSetColor($oExcel, 1, 1, 1, 1, 0xff00ff, True) ;Замена True на False задаёт цвет текста

Func _ExcelSetColor($oExcel, $sRangeOrRowStart, $iColStart, $iRowEnd, $iColEnd, $nColor, $bBkColor = False)
	If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
	
	With $oExcel.ActiveSheet
		If $bBkColor Then
			.Range(.Cells($sRangeOrRowStart, $iColStart), .Cells($iRowEnd, $iColEnd)).Fill.BackgroundColor = $nColor
		Else
			.Range(.Cells($sRangeOrRowStart, $iColStart), .Cells($iRowEnd, $iColEnd)).Font.Color = $nColor
		EndIf
	EndWith
EndFunc


Для текста ячейки нормально задаёт, а вот для фона нет.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 12389169
.TintAndShade = 0
.PatternTintAndShade = 0
End With

Вот такой вот макрос записался. Попробуйте.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
inververs [?]
Вот такой вот макрос записался
Это с выделением? Мне нужно для указанной ячейки.

То что нужно:

Код:
Func _ExcelSetColor($oExcel, $sRangeOrRowStart, $iColStart, $iRowEnd, $iColEnd, $nColor, $bBkColor = False)
    If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
    
    With $oExcel.ActiveSheet
        If $bBkColor Then
            .Range(.Cells($sRangeOrRowStart, $iColStart), .Cells($iRowEnd, $iColEnd)).Interior.Color = $nColor
        Else
            .Range(.Cells($sRangeOrRowStart, $iColStart), .Cells($iRowEnd, $iColEnd)).Font.Color = $nColor
        EndIf
    EndWith
EndFunc


:ok:
 
Верх