2011-08-07 50 views

回答

17
range.Borders(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlLineStyle.xlLineStyleNone 
range.Borders(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlLineStyle.xlLineStyleNone 
range.Borders(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlLineStyleNone 
range.Borders(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlLineStyle.xlLineStyleNone 
range.Borders(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlLineStyleNone 
range.Borders(Excel.XlBordersIndex.xlInsideVertical).LineStyle = Excel.XlLineStyle.xlLineStyleNone 

刪除單元格周圍和單元格之間的邊界(通過xlInsideHorizontalxlInsideVertical)。如果您期望對角邊框,請包括xlDiagonalDownxlDiagonalUp

好的,上面的代碼非常冗長。以下也應該這樣做:

For Each border in range.Borders 
    border.LineStyle = Excel.XlLineStyle.xlLineStyleNone 
Next 

參見:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.borders.aspx

編輯:

雖然看在MSDN頁面,我想知道,如果這一個襯墊能做到這一點:

range.Borders.LineStyle = Excel.XlLineStyle.xlLineStyleNone 
+0

如果範圍太大,它會很慢.. 那麼,它可以一次完成整個範圍嗎? –

+0

它應該是非常快的,因爲你沒有遍歷每個單元格,就像你的例子。你試過了嗎? – VVS

+0

我想它的相似就像我們遍歷每個單元格的邊界一樣..我的意思是你的解決方案看起來不錯,但是整個範圍沒有直接的方法嗎? 我認爲必須有一個? –

1

檢查NamedRange.BorderAround Method

Dim range As Excel.Range = sheet.Range("A2:K100") 
range.BorderAround(Excel.XlLineStyle.xlLineStyleNone, Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, missing) 

歡呼和祝你好運!

+0

它管理範圍周圍的邊界而不在範圍內。我正在修改這個問題要清楚。 –

0

爲什麼所有的答案如此複雜?

爲整個片材使用...

With .Cells 
     .Borders.LineStyle = xlLineStyleNone 
End With 

用於一系列只需更換.Cells適當

2

範圍。( 「A2:K100」)Borders.LineStyle = xlNone

相關問題