2017-06-07 182 views
0

我有一個作爲範圍(列表對象)的命名錶格,我需要更改一個單元格的邊緣頂部邊框顏色,但代碼不起作用,我需要一些幫助。下面是部分代碼:更改表格內單個單元格的邊框顏色

With ws 
    .Unprotect Password:="pAtRiCiA" 

    For Each ctrl In Me.Controls 
     If Left(ctrl.Name, 5) = "texto" Then 
      If ultimafila - 1 <> 8 Then 
       If ctrl.Name = "textoCausas" Then 
        If Not IsError(Application.Match(Me.textoCausas.Value, ws.ListObjects(ActiveSheet.Name).ListColumns(1).DataBodyRange, 0)) Then 
         .Cells(ultimafila, ctrl.TabIndex) = "" 
         .ListObjects(ActiveSheet.Name).ListColumns(1).DataBodyRange(ultimafila, 1).Borders(xlEdgeTop).LineStyle = xlContinuous 
         .ListObjects(ActiveSheet.Name).ListColumns(1).DataBodyRange(ultimafila, 1).Borders(xlEdgeTop).ColorIndex = 3 
         .ListObjects(ActiveSheet.Name).ListColumns(1).DataBodyRange(ultimafila, 1).Borders(xlEdgeTop).Weight = xlThick 
        Else 
         .Cells(ultimafila, ctrl.TabIndex) = ctrl.Value 
        End If 
       Else 
        .Cells(ultimafila, ctrl.TabIndex) = ctrl.Value 
       End If 
      Else 
       .Cells(ultimafila, ctrl.TabIndex) = ctrl.Value 
      End If 
     End If 
    Next ctrl 
    .Cells(ultimafila, 2) = txtControles.Value 

    .Rows(ultimafila).AutoFit 
    .Rows(ultimafila).RowHeight = .Cells(ultimafila, 1).Height + 12 
    .Protect Password:="pAtRiCiA", DrawingObjects:=True, Contents:=True, Scenarios:=True 
End With 
+0

「不起作用」不是對您的問題非常有用的描述。當你運行你的代碼時會發生什麼? –

+0

.Border屬性不適用。播放宏後,單元格的邊緣頂部邊框顏色不會更改。 –

+0

您的邊框格式行適用於我。你確定他們被執行了嗎?如果你在這些行中放置了一箇中斷,代碼就停在那裏了嗎? –

回答

0

有了這個測試代碼:

Sub Test() 

    With ActiveSheet.ListObjects(1).ListColumns(1).DataBodyRange(6, 1).Borders(xlEdgeTop) 
     .LineStyle = xlContinuous 
     .ColorIndex = 3 
     .Weight = xlThick 
    End With 

End Sub 

我得到這樣的結果:

enter image description here

所以,你的格式代碼工作正常,我。
你可能有一些條件格式或其他格式應用於該表?

+0

是的,現在我看到它的作品!問題是我的表從#8行開始,所以'DataBodyRange'的正確引用是'ultima fila - 8'。謝謝! –