2011-08-07 9 views

Odpowiedz

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 

Usuwa obramowania wokół komórkami oraz między komórkami (Via xlInsideHorizontal i xlInsideVertical). Jeśli spodziewasz się przekątnych granic, włącz xlDiagonalDown i xlDiagonalUp.

OK, powyższy kod był bardzo szczegółowy. Poniższa powinien zrobić też:

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

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

EDIT:

Chociaż patrząc na stronie MSDN, zastanawiam się, czy ta wkładka może to zrobić też:

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

Byłoby bardzo wolno, gdyby zasięg był zbyt duży. Czy może to zrobić dla całego zakresu naraz? –

+0

Powinno być bardzo szybkie, ponieważ nie wykonuje się iteracji po każdej komórce, tak jak w próbce. Spróbowałeś? – VVS

+0

Przypuszczam, że jest podobny do iteracji ponad granicami każdej komórki. Mam na myśli to, że rozwiązanie wydaje się dobre, ale czy nie istnieje bezpośrednia metoda dla całego zakresu? Myślę, że musi być jeden? –

1

Sprawdź 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) 

Pozdrowienia i powodzenia!

+0

It zarządza granicami wokół zasięgu, a nie wewnątrz zakresu. Modyfikuję pytanie, aby było jasne. –

0

dlaczego wszystkie odpowiedzi są tak zawiłe?

dla całego użytkowania blachy ...

With .Cells 
     .Borders.LineStyle = xlLineStyleNone 
End With 

dla wielu po prostu zastąpić .Cells jako odpowiedni

2

Range. ("A2: K100") Borders.LineStyle = xlNone

Powiązane problemy