Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Excel 2016 VBA中的单元格范围中删除底部边框-不工作?_Excel_Vba - Fatal编程技术网

从Excel 2016 VBA中的单元格范围中删除底部边框-不工作?

从Excel 2016 VBA中的单元格范围中删除底部边框-不工作?,excel,vba,Excel,Vba,我有一个范围sh.RangeF46:I46,当前有一个薄的底部边框,我想使用VBA来摆脱它,但是我尝试的解决方案失败了。现在我只有: sh.Range("F46:I46").Borders(xlEdgeBottom).LineStyle = xlNone 我也试过: For Each r In sh.Range("F46:I46") r.Borders(xlEdgeBottom).LineStyle = xlNone Next r sh.Ran

我有一个范围sh.RangeF46:I46,当前有一个薄的底部边框,我想使用VBA来摆脱它,但是我尝试的解决方案失败了。现在我只有:

sh.Range("F46:I46").Borders(xlEdgeBottom).LineStyle = xlNone
我也试过:

For Each r In sh.Range("F46:I46")
    r.Borders(xlEdgeBottom).LineStyle = xlNone
Next r
sh.Range("F46:I46").Borders.LineStyle = Excel.XlLineStyle.xlLineStyleNone
…这实际上是同一件事,我也尝试过:

For Each r In sh.Range("F46:I46")
    r.Borders(xlEdgeBottom).LineStyle = xlNone
Next r
sh.Range("F46:I46").Borders.LineStyle = Excel.XlLineStyle.xlLineStyleNone
…我认为这是一个VB.net代码


我哪里出错了?????谢谢

我发现是什么让它起作用了。我刚才用过:

sh.Range("F46:I48").Borders.LineStyle = xlNone
…没有在Borders函数中指定xlEdgeBottom,并稍微扩展范围,因此在我的范围附近应用的任何边界都不是xlEdgeBottom类型。这个命令只是将它们全部删除

另外,另一个有效的解决方案是,使用以下方法将普通单元格样式应用于所讨论的范围:

sh.Range("F46:I48").Style = "Normal"

谢谢大家

是因为F47:I47有上边框吗?Borders是单元格的子属性,反之亦然。它适合我。我希望它不是线形?还有另一种可能性。边界不是第46行或第47行的边界,而是第48行或其他大于47行的边界。想象一下。第47排是隐藏的。第46行有底部边框,第48行有顶部边框。您的代码将删除第46行的下边框,但您仍然会看到下边框,实际上是第48行的上边框。其他可能性;单元格受到保护,下一个错误是隐藏它,甚至可能指向完全不同的工作表。因此,如果这是一个较大宏的一部分,我想您最好发布更多代码。奇怪的是,当您选择一个完全围绕单元格的区域并在“开始”选项卡上单击“单元格样式库”中的“正常”时,会发生什么?很好的后续操作。祝贺你的成功。