Vba 表格边框为';没有人填补

Vba 表格边框为';没有人填补,vba,excel,Vba,Excel,我尝试使用以下方法自动填充单元格Q2:T200的顶部和底部表格边框: Sub autofiller() Dim ws As Worksheet Dim wb As Workbook Set wb = ActiveWorkbook Set ws = wb.Worksheets("Pharmacontacts") With ws.Range("Q2:T200").Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .Colo

我尝试使用以下方法自动填充单元格Q2:T200的顶部和底部表格边框:

Sub autofiller()
Dim ws As Worksheet
Dim wb As Workbook

Set wb = ActiveWorkbook
Set ws = wb.Worksheets("Pharmacontacts")

With ws.Range("Q2:T200").Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.Color = RGB(91, 155, 213)
End With
With ws.Range("Q2:T200").Borders(xlEdgeBottom)
.LineStyle = xlDouble
.Weight = xlThick
.Color = RGB(91, 155, 213)
End With
End Sub
问题是没有填充表格边框。我在以下方面遇到了同样的问题:

With Range("Q2:T200").Borders(xlEdgeTop)
.LineStyle = xlContinuous
.color = RGB(91,155,213)
.Weight = xlThin

End With
With Range("Q2:T200").Borders(xlEdgeBottom)
.LineStyle = xlDouble
.color = RGB(91,155,213)
.Weight = xlThick
End With
我也试过:

With Range("Q2:T200")
    With .Rows(.Rows.Count)
        With .Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .Color= RGB(91,155,213)
        End With
        With .Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .Color= RGB(91,155,213)
        End With
    End With
End With

我曾在网上尝试过其他代码,它们实现了同样的目标。我在网上找到的代码都不管用,但似乎对其他人都管用

我认为您需要在每个单元格中循环,例如:

Sub Button1_Click()
    For Each cell In Range("Q2:T200")
        With cell.Borders(xlTop)
            .LineStyle = xlContinuous
            .Color = RGB(91, 155, 213)
            .Weight = xlThin
        End With
    Next cell
    For Each cell In Range("Q2:T200")
        With cell.Borders(xlBottom)
            .LineStyle = xlDouble
            .Color = RGB(91, 155, 213)
            .Weight = xlThick
        End With
    Next cell


End Sub

只是为了确保-你没有边界,运行第一个?如果用F8单步执行代码,会怎么样?还是什么都没发生?也没有错误吗?你给我的第一个代码对我有用,我有一个上边框和两个下边框…hm.hm-创建一个新工作簿,将宏中的工作表名称更改为“Sheet1”,然后运行它,看看它是否在新工作簿上工作。。。另外,确保你的活动工作簿和工作表存在(我肯定你有,但愚蠢的疏忽肯定会发生)。另外,在使用
语句的
之前,添加
ws.Range(“Q2:T200”)。选择
并逐步执行-这将确保您期望的边界范围是正确的…好的,我尝试了,它似乎只填充第一行(Q2:T2),但之后什么也没有。我将单元格引用更改为(Q2:Q100)以查看它是否有效,但仍然只有第一行可以填充。添加到
ws.Range(“Q2:T200”)。选择
但仍然存在相同的问题,只填充第一行。忘了提到第一行只填充上边框,没有下边框,你只希望第2行有一条线,第200行有一条线-中间没有线?我能让它在T2上画一条顶线,在200上画一条双底线。是的,它确实做到了,但我从来没有费心检查第200行,直到你提到它,因为我认为它根本不起作用。谢谢你的帮助!:)这将在第2行添加一个顶行,然后在每个单元格中添加两行,一直添加到200。我认为OP只需要一条顶线和一条底线,中间没有边界。尽管如此,我很想知道这对OP是否像对我/我们一样有效。如果没有,我想还有别的事情发生…@BruceWayne,这就是我想要的。我以为范围输入会自动循环每个单元格,但我错了。Davesexcel,非常感谢,成功了!