我想用一個按鈕來使所有的單元格除了命名範圍以外的所有單元格的Excel加載項。如何更改內部的顏色和不是邊框
我正在使用TintAndShade屬性,將其設置爲-0.7。我遇到的問題是,當我打開新的工作表時,單元格內部處於「無填充」模式。因此TintAndShade屬性沒有區別。然後,我試着檢查內部顏色是否默認(ColorIndex = -4142),如果是這種情況,我將顏色設置爲白色(ColorIndex = 2)。我遇到的問題是,它會擦除所有邊界(我認爲邊界也處於「無填充」模式)。我不能將它們設置爲黑色,因爲它不是默認顏色。
是否有人知道如何更改內部顏色而不刪除默認邊框顏色?或者還有沒有其他更簡單的方法來製作這樣的按鈕(除了命名範圍之外的所有單元格)?
謝謝!
這裏是我的代碼,如果你想查詢:
int shadeMargin = 0;
Excel.Worksheet excelWorksheet = Globals.ThisAddIn.Application.ActiveSheet;
Excel.Names tags = Globals.ThisAddIn.Application.ActiveWorkbook.Names;
Excel.Range last = excelWorksheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell, Type.Missing);
Excel.Range xlRange = excelWorksheet.get_Range("A1", last);
for (int i = 1; i < xlRange.Rows.Count + 1 + shadeMargin; i++)
{
for (int j = 1; j < xlRange.Columns.Count + 1 + shadeMargin; j++)
{
if (xlRange.Cells[i, j].Interior.ColorIndex == -4142) // Correspond to the "No Fill" color
{
xlRange.Cells[i, j].Interior.ColorIndex = 2; // Replaced by WHITE color
}
xlRange.Cells[i, j].Interior.TintAndShade = -0.7;
}
}
foreach (Excel.Name tag in tags)
{
Excel.Range tagRange = tag.RefersToRange;
for (int i = 1; i < tagRange.Rows.Count + 1; i++)
{
for (int j = 1; j < tagRange.Columns.Count + 1; j++)
{
tagRange.Cells[i, j].Interior.TintAndShade = 0;
}
}
}
單元格實際上是否有邊框,或者您是否看到網格線?您可以轉到功能區上的查看並取消選中「顯示」組中的網格線旁邊的以進行驗證。 – 2015-04-07 15:10:15
不,你是對的,他們沒有邊框,當我取消選中「顯示」按鈕。 – Vilsisse 2015-04-16 10:55:52