首页 > 编程语言 >【office编程】VB删除指定excel中行

【office编程】VB删除指定excel中行

时间:2024-02-06 19:33:21浏览次数:34  
标签:Dim VB sheet office no excel start result end

打开 Excel 中的 Visual Basic 编辑器,键入以下代码:

Sub BatchDelete()
    Dim inputstr As String
    Dim result() As String
    Dim sheet_no() As String
    Dim start_end() As String
    Dim i, n, num, WS_Count As Integer
    Dim ws As Worksheet
    
    inputstr = InputBox("Please input lines what you want batch delete(split by ',').")
    result = Split(inputstr, ",")

    For i = LBound(result) To UBound(result)
        If InStr(1, result(i), ":", vbTextCompare) <= 0 Then
            ' not containing :
            result(i) = result(i) & ":" & result(i)
        End If
    Next
    inputstr = Join(result, ",")

    inputstr2 = InputBox("Please input sheets what you want batch delete(split by ',').", Title:="Batch delete in sheets.", Default:="1:" & ActiveWorkbook.Worksheets.Count)
    sheet_no = Split(inputstr2, ",")

    For i = LBound(sheet_no) To UBound(sheet_no)
        If InStr(1, sheet_no(i), ":", vbTextCompare) > 0 Then
            ' containing :
            start_end = Split(sheet_no(i), ":")
            sheet_no(i) = start_end(0)
            For n = start_end(0) + 1 To start_end(1)
                sheet_no(i) = sheet_no(i) & "," & n
            Next
        End If
    Next
    inputstr2 = Join(sheet_no, ",")
    sheet_no = Split(inputstr2, ",")

    WS_Count = ActiveWorkbook.Worksheets.Count
    For n = LBound(sheet_no) To UBound(sheet_no)
        num = CInt(sheet_no(n))
        If num <= WS_Count Then
            Set ws = ActiveWorkbook.Worksheets(num)
            ws.Range(inputstr).Delete
        End If
    Next

End Sub

点击【宏】选择【BatchDelete】之后会有两次弹窗:

第一次弹窗:

填写需要删除的行号,逗号分隔,同时也支持用英文冒号连接数字来表示序号范围,如 3,5,7:11

第二个弹窗:

填写要处理的工作表的Sheet序号,从左往右依次为 1, 2, 3, ...
多个序号用英文逗号间隔,同时也支持用英文冒号连接数字来表示序号范围,如 3,5,7:11

标签:Dim,VB,sheet,office,no,excel,start,result,end
From: https://www.cnblogs.com/coder-ydq/p/18010222

相关文章

  • [office] Excel怎么设置从指定部分分页打印
    excel表格中的指定一部分数据想分成两页打印,该怎么设置呢?下面就跟小编一起看看吧。Excel设置从指定部分分页打印的步骤1、现有如下字段:按班级进行打印。一班的同学打印在一张纸上。二班的同学打印在一张纸上!2、点击视图菜单下面的分页预览3、选择要分割的......
  • [office] 我们可以根据个人需求将其改为单下划线或者其它都可以
    1.打开Excel表格,选中需要添加下划线的文字内容,接着右键选择“设置单元格格式”2.在设置单元格格式里选择“字体”,系统默认是无下划线的,我们可以根据个人需求将其改为单下划线或者其它都可以。3.设置完毕后我们就可以在表格里看到添加下划线后的效果啦。......
  • [office] 然后输入相应的内容
    1.打开Excel,选中单元格,接着点击工具栏的“数据”→“数据有效性”2.在数据有效性里将有效条件改为“自定义”,接着在公式栏输入“=COUNTIF(A:A,A1)=1”3.接着点击“出错警告”,将样式改为警告,然后输入相应的内容。4.返回文档输入数据的时候如果输入重复数据,系统就发......
  • python爬虫爬取豆瓣电影top250并写入Excel中
    importrequestsimportreimportopenpyxl#创建工作表wb=openpyxl.Workbook()ws=wb.active#调整列距forletterin['B','C']:ws.column_dimensions[letter].width=66#发送网络请求headers={"User-Agent":'Mozilla/5.0(WindowsNT10.0;Win64;x64)......
  • 100000行级别数据的 Excel 导入优化之路
    项目中有一个Excel导入的需求:缴费记录导入由实施/用户将别的系统的数据填入我们系统中的Excel模板,应用将文件内容读取、校对、转换之后产生欠费数据、票据、票据详情并存储到数据库中。在接手之前可能由于之前导入的数据量并不多没有对效率有过高的追求。但是到了4.0版本,......
  • ChessFunctions+ActiveXControl+SharedAddIn三合一【Office和VBA中呈现中国象棋】
    本软件由三个项目构成,各自下载链接如下:ChessFunctions链接:https://pan.baidu.com/s/11pMnmd28nHtpTGCU9rwNHg提取码:1234ChessFunctions的帮助文件链接:https://pan.baidu.com/s/1uxJYx8gOd8sNEBlda3onnA提取码:1234ActiveXControl链接:https://pan.baidu.com/s/1CTLcXlQgZaD1_av......
  • EXCEL C# 聚光灯
    C#EXCEL版本聚光灯,开发框架利用EXCELDNA开源库publicstaticclassExtension{staticApplication_xlapp=(Application)ExcelDnaUtil.Application;publicconststringMyConditionRng="$1:$1048576";[ExcelCommand(MenuName="拓展",Menu......
  • [office] Excel2010删除批注教程
    现在,很多人在使用excel2010的时候,经常会对其进行批注,但是过一段时间后,如果Excel2010工作表中的单元格批注失去存在的意义,用户可以将其删除。那么,Excel2010怎么删除批注?今天,小编就为大家带来Excel2010删除批注教程。Excel2010打开Excel2010工作表窗口,右键单击含有批注的单......
  • 导出excel文件接口代码示例
    导出excel文件接口代码示例1.该导出接口,token不能通过请求头来传输,需要在get请求的参数中带出来2.验证token的方法除了在拦截器中统一拦截,针对get接口传参数的方式也需要单独在接口中验证。@RequestMapping(value="export",method=RequestMethod.GET)publicString......
  • 关于easyExcel解析未添加@ExcelProperty报错问题分析
    在一次做辅料商品导出列表的需求,并且上线之后发现,怎么商品列表的导出没有反应,一看日志,发现报错了:这里新加了两个字段用于做转换使用。因为之前很少用easyExcel,所以以为只要不加@ExcelProperty,easyExcel就不会去解析字段,没想到easyExcel还是去做了解析。源码分析通过上面的......