以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何删除Excel里特定行高的行?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=162100)

--  作者:1669607010
--  发布时间:2021/4/6 8:41:00
--  [求助]如何删除Excel里特定行高的行?
有个比较奇葩的需求,哪位老师指导一下,有没有办法删除Excel里行高为0.5的所有行?
--  作者:有点蓝
--  发布时间:2021/4/6 8:45:00
--  
遍历所有行,如果行高为0.5就删除:http://www.foxtable.com/webhelp/topics/1158.htm

Dim Book As New XLS.Book("c:\\test\\订单.xls")
Dim 
Sheet As XLS.Sheet = Book.Sheets(0)

For n As Integer = Sheet.Rows.Count -1 to 0 step -1
   if 
Sheet.Rows(n).Height = 0.5 then
Sheet.Rows.RemoveAt(n)
end if
Next


--  作者:1669607010
--  发布时间:2021/4/6 8:50:00
--  
谢谢老师指导
--  作者:1669607010
--  发布时间:2021/4/6 10:11:00
--  
蓝老师,还有一个问题,代码能删除特定的行,但删除的行后面的行的格式怎么变了 ?也就是说特定的行是删除了,可格式貌似没删除、删除行后的行就都错位了。
--  作者:有点蓝
--  发布时间:2021/4/6 10:13:00
--  
试试

For n As Integer = Sheet.Rows.Count -1 to 0 step -1
   if 
Sheet.Rows(n).Height = 0.5 then
Sheet.Rows(n).style = nothing
Sheet.Rows.RemoveAt(n)
end if
Next

--  作者:1669607010
--  发布时间:2021/4/6 10:18:00
--  
加上那句代码后提示“未将对象引用设置对象的实例”
--  作者:有点蓝
--  发布时间:2021/4/6 10:21:00
--  
execl文件发上来测试
--  作者:1669607010
--  发布时间:2021/4/6 10:33:00
--  
为了方便您观看,需要删除的行高调成10了,在EXCEL里也标注出来了
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:外购原料出库单a4.xls


--  作者:有点蓝
--  发布时间:2021/4/6 10:50:00
--  
测试没有问题:
Dim Book As New XLS.Book("D:\\问题\\外购原料出库单a4.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)

For n As Integer = Sheet.Rows.Count -1 To 0 Step -1
\'Output.Show(Sheet.Rows(n).Height)
    If Sheet.Rows(n).Height = 13 Then
        Sheet.Rows(n).Style = Nothing
        Sheet.Rows.RemoveAt(n)
    End If
Next
Book.Save("D:\\问题\\外购原料出库单a4.xls")

哪一行样式有问题?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:外购原料出库单a4(更改后).xls



--  作者:1669607010
--  发布时间:2021/4/6 11:05:00
--  
谢谢老师。完美解决了