格式化Excel行上的列VB .NET

时间:2017-06-12 14:49:40

标签: excel vb.net

我想将样式应用于Excel行,仅当受影响的列具有值且不为空时。

但是,我已尝试使用if,for和while指令,但我没有结果。

我的上一个代码是:

Dim i As Excel.Range
Do While Not String.IsNullOrEmpty(xlWorksheet.Columns(i)) 
    xlWorksheet.Rows(5).Style = "FormatoHeader" 
Loop

我必须改变指示吗? 为什么我的周期错了? 如何格式化这些单元格,仅对该行进行格式化,并且只有在单元格有数据的情况下?

提前致谢

1 个答案:

答案 0 :(得分:0)

好吧,我忘了提到我想格式化该行,因为它是表格的标题。

我的表格是一个表格,因此它有预定义的样式。

Sheet.ListObjects.Add(Excel.XlListObjectSourceType.xlSrcRange,
            .Range("B5:X50"), Excel.XlYesNoGuess.xlYes).Name = "CuteTable" 

我将Excel样式更改为另一个预定义样式(在这种情况下,我需要一个绿色样式):

Sheet.ListObjects("CuteStyle").TableStyle = "TableStyleMedium4" 

好吧,编辑标题的简短方法是调用对象HeaderRowRange并像这样添加属性:

.ListObjects("CuteTable").HeaderRowRange.Font.ColorIndex = 1 'This is black
.ListObjects("CuteTable").HeaderRowRange.Interior.Color = 55555 'this is a green

漫长的方法是创建一个新样式并将其存储在变量中:

Dim hstyle As Excel.Style=Sheet.Application.ActiveWorkbook.Styles.Add("hstyle")
hstyle.Font.Bold = True 
hstyle.Interior.Color = 333

然后,将样式应用于表格的标题:

Sheet.ListObjects("CuteTable").HeaderRowRange.Style = "hstyle"