2017-06-12 93 views
0

我想將樣式應用於Excel行,僅當受影響的列有值且不爲空時。格式化Excel行上的列VB .NET

但是,我試着用if,for和while指令,而我沒有結果。

我最後的代碼是:

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

我必須要改變的指令? 爲什麼我的週期是錯誤的? 如何格式化這些單元格,僅限於該行,並且僅當單元格有數據時?

在此先感謝

+1

你是不是分配給變量i,即使在當時,是爲.Columns適當的指數? –

+0

我不分配一個值,因爲我想檢查該行中所有值的列 – KPavezC

回答

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"