精华内容
下载资源
问答
  • VBA高手直接删除指定条件行.xls
  • 我需要选中比如A2开始到最右下角那个单元格 应该可以用range().delete 但是不知道如何表达最右下角那个单元格 另外 需要批量操作10张表的话 ,如何写? 比如 删除表1-表10的A2开始到最右下角单元格区域的全部内容
  • Vba删除指定

    千次阅读 2020-03-14 17:23:31
    Sub classification() Dim LastRow, max_level As Integer Dim slc, j, dele, a, b As Integer On Error Resume Next LastRow = ActiveSheet.UsedRange.Rows.Count For slc...是因为删除的行,他会上移,也可以使用DO 
    Sub classification()
    
    Dim LastRow, max_level As Integer
        Dim slc, j, dele, a, b As Integer
      
        On Error Resume Next
        LastRow = ActiveSheet.UsedRange.Rows.Count
    
        For slc = 1 To LastRow
    Line1:
        
            If Sheet1.Cells(slc, "e") = "FOLDERS" Then
            dele = slc + 1
                For j = slc + 1 To LastRow
                 If Range("A" & j) > Range("A" & j + 1) Then
                      dele = j
                      Exit For
                 End If
                Next j
                Range(Rows(slc), Rows(dele)).Delete
          GoTo Line1
            End If
        Next slc
    
    End Sub

    这里用了GOTO ,是因为删除的行,他会上移,也可以使用DO 

    展开全文
  • vba 自动删除代码实例

    2011-10-28 23:12:00
    vba 自动删除代码实例vba 自动删除代码实例vba 自动删除代码实例vba 自动删除代码实例
  • word、wps中使用vba删除所有表格指定列 处理word表格搞得人头大,找时间百度一波写了个函数处理标记删除的问题,根据这一套逻辑还可以实现很多功能,供各位参考。 要点: 双循环遍历所有表表头 InStr函数匹配具体...

    word、wps中使用vba删除所有表格指定列


    处理word表格搞得人头大,找时间百度一波写了个函数处理标记删除的问题,根据这一套逻辑还可以实现很多功能,供各位参考。

    要点:
    双循环遍历所有表表头
    InStr函数匹配具体内容(word表格多半有特殊字符,相等匹配较难保证)
    在内循环结束后进行删除,否则将出错

    用法:
    1、定义条件,如 InStr(value1, “学号”),多条件拼接(如 InStr(value1, “学号”)>0 or InStr(value1, “姓名”) >0)
    2、新建宏名range,粘贴内容到vba编辑器
    3、执行

    效果:
    在这里插入图片描述

    代码:

    
    
    'ver 2.0
    
    Sub range()
    '遍历文档所有表格,删除表头第一行含有特定字符串的列
    Dim value1 As String
    Dim target() As Integer
    For i = 1 To ActiveDocument.Tables.Count
      Dim targetLen As Integer
      targetLen = 0
      For j = 1 To ActiveDocument.Tables(i).Columns.Count
         value1 = ActiveDocument.Tables(i).Columns(j).Cells(1).range.Text
         '这里定义条件,可以定义多个条件
         If InStr(value1, "测试") > 0 or InStr(value1, "学号") > 0 Then
         targetLen = targetLen + 1
         ReDim Preserve target(targetLen)
         target(targetLen - 1) = j
         Else
         End If
      Next j
      If targetLen <> 0 Then
      ' MsgBox targetLen
        ' 修正删除操作带来的列号偏移
       Dim shift As Integer
       shift = 0
       For k = 0 To (targetLen - 1)
         ' MsgBox target(k)
           ActiveDocument.Tables(i).Columns(target(k) - shift).Delete
           shift = shift + 1
        Next k
      End If
    Next i
        MsgBox ("执行完毕。")
    End Sub
    

    使用过程中遇到复合表格遍历报错问题,修改加入错误处理跳过
    (注意,因需求变动这里已经改成了匹配第一列,如仍需匹配第一行,请按上一段代码循环条件设置)

    'ver 3.0
    Dim value1 As String
    Dim target() As Integer
    For i = 1 To ActiveDocument.Tables.Count
      'MsgBox ("遍历表 " & i & "。")
      Dim targetLen As Integer
      targetLen = 0
      For j = 1 To ActiveDocument.Tables(i).Rows.Count
         On Error GoTo flag
         value1 = ActiveDocument.Tables(i).Rows(j).Cells(1).range.Text
         '这里定义条件
         If InStr(value1, "test1") > 0 Or InStr(value1, "test2") > 0  Then
         targetLen = targetLen + 1
         ReDim Preserve target(targetLen)
         target(targetLen - 1) = j
         Else
         End If
      Next j
      If targetLen <> 0 Then
      ' MsgBox targetLen
        ' 修正删除操作带来的列号偏移
       Dim shift As Integer
       shift = 0
       For k = 0 To (targetLen - 1)
         ' MsgBox target(k)
           ActiveDocument.Tables(i).Rows(target(k) - shift).Delete
           shift = shift + 1
        Next k
      End If
    flag:
        Resume continue
    continue:
    Next i
        MsgBox ("执行完毕。")
    End Sub
    

    如需删除而非跳过复合行,则删除代码需换成下列实现形式

     With ActiveDocument
            .Tables(1).Cell(2, 2).Delete ShiftCells:=wdDeleteCellsEntireRow
        End With
    
    展开全文
  • 一般被分享的PPT都是转换成PDF格式,想要借鉴的时候,需要通过一些工具转换,转换后,原版的logo,页眉页脚什么都需要删除,如果PPT页数很多,就难以删除,因此有这篇文章 第一阶段方案 借鉴了...

    原因

    一般被分享的PPT都是转换成PDF格式,想要借鉴的时候,需要通过一些工具转换,转换后,原版的logo,页眉页脚什么都需要删除,如果PPT页数很多,就难以删除,因此有这篇文章

    第一阶段方案

    借鉴了http://www.dzwebs.net/4321.html这篇文章,写出来一些代码,这个是通过名称进行删除,但是当PPT使用了多个版式,容易错删其他页面的正常图形。
    如果样式简单、版式比较单一,可以使用下面的代码:

    Sub delshapes_withname()
        For Each sld In ActivePresentation.Slides
            For Each s In sld.Shapes
                If s.Name = "Object 8" Or s.Name = "Object 5" Then
                    s.delelte
                End If
            Next
        Next
    End Sub
    

    第二阶段方案

    由于以上的方案有很多缺陷,因此设计了一个新的方案,考虑容易操作灵活而不改动代码。
    第一步,在PPT第一页之前插入一页,并删除页面上所有的图形,点击开始>编辑>选择>选择窗格,里面为空为止
    第二步,把其他页面需要删除的东西复制粘贴到第一页空白PPT页面
    第三步,在PPT的VBA中插入模块,粘贴以上代码
    第四步,查看删除情况,把还需要删除的,继续复制到第一页,继续运行,直到所有需要删除的图形都被删除
    第五步,删除第一页

    Sub delshapes_withsize()
    On Error Resume Next
        For Each sld In ActivePresentation.Slides
        If sld.SlideIndex > 1 Then
            For Each s In sld.Shapes
                For Each ss In ActivePresentation.Slides(1).Shapes
                    If Not IsNull(s) And Not IsNull(ss) Then
                        If s.Type = ss.Type And s.Width = ss.Width And s.Height = ss.Height Then
                            s.Delete
                        End If
                    End If
                Next
            Next
        End If
        Next
    End Sub
    

    适配更多的情况

    现在是以图形类型+图形宽度+图形高度作为匹配条件,没有考虑内容问题,也有可能其他图形与删除的图形刚好一样大小被误删除,因此可以加上内容判断、甚至位置判断。

    序号属性名称代码
    1名字s.Name
    2宽度s.Width
    3高度s.Height
    4内容s.TextEffect.Text
    5位置上s.Top
    6位置左s.Left

    更多的属性请参考微软的帮助文件
    https://docs.microsoft.com/zh-cn/office/vba/api/powerpoint.shape
    当然,判断条件越多,筛选范围越窄,这要根据PPT的规范程度和你自己要删除的图形本身特征来考虑使用那些匹配条件,并非越多越好

    Sub delshapes_withmore()
    On Error Resume Next
        For Each sld In ActivePresentation.Slides
        If sld.SlideIndex > 1 Then
            For Each s In sld.Shapes
                For Each ss In ActivePresentation.Slides(1).Shapes
                    If Not IsNull(s) And Not IsNull(ss) Then                    
                        If s.Type = ss.Type And s.Width = ss.Width And s.Height = ss.Height And s.TextEffect.Text = s.TextEffect.Text Then
                            s.Delete
                        End If
                    End If
                Next
            Next
        End If
        Next
    End Sub
    
    展开全文
  • VBA_EXCEL删除行的方法

    2011-04-18 23:51:14
    v B A
  • 二、解决方案:同样的还是要用VBA来解决,操作前面已经介绍过了,我们直接上代码和注释(!!!在这里需要强调一下:在运行代码前要选中需要删除的部分,比如A-F——1-2000,上下左后都要选,不能全选。由于程序会对...

    一、背景及需求:上一期介绍的由多个excel合成的Excel表如下所示,我们需要把有汉字的行删删除掉。在这里插入图片描述
    二、解决方案:同样的还是要用VBA来解决,操作前面已经介绍过了,我们直接上代码和注释(!!!在这里需要强调一下:在运行代码前要选中需要删除的部分,比如A-F——1-2000,上下左后都要选,不能全选。由于程序会对选中的每个单元格进行索引,如果直接Ctrl+A全选或者只选择上下或者左右的话,程序会由于一直进行excel单元格的索引而进入无限索引,最终导致电脑卡死!!!):

    Sub wrj()
    Dim rng As Range '定义了一个range类型的变量 rng
    Dim InputRng As Range  '同上
    Dim DeleteRng As Range  '同上
    Dim DeleteStr As String  '字符串型数据
    xTitleId = "KutoolsforExcel" '选择区域弹窗的名字
    Set InputRng = Application.Selection
    Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
    DeleteStr = Application.InputBox("Delete Text", xTitleId, Type:=2) '删除的行的关键字
    For Each rng In InputRng '遍历所有行
        If rng.Value = DeleteStr Then '如果有关键字和需要删除的关键字一样
            If DeleteRng Is Nothing Then
                Set DeleteRng = rng
            Else
                Set DeleteRng = Application.Union(DeleteRng, rng)
            End If
        End If
    Next
    DeleteRng.EntireRow.Delete '删除行
    End Sub
    

    三、摁下F5运行,即可得到结果。

    展开全文
  • 然后就想到能不能直接删除表的操作就可以了,于是尝试通过vba的代码删除整个表。代码如下: Public Function deltable(app As Object) '在word文档当中删除文档中的第5个表 wdApp.Act...
  • VBA 如何删除数组里的某个元素

    千次阅读 2019-12-20 15:17:50
    'match是vba函数,返回index与VBA代码的array不对应,index从1开始 'arr1的每个内容都是字符串?NO '是match语法要求这么写,写10,而不"10"会无法查到 x1 = Application.Match("100", arr1, 0) Debug.Print x1...
  • 【代码模板004】VBA快速删除工作表

    千次阅读 2018-03-01 02:34:00
    在博文 VBA添加工作表详解 中为大家讲了如何使用一句代码在指定位置插快速入指定名称的工作表。但是如果工作簿中已经存在同名工作表,那么运行时错误’1004‘就不期而遇的跳了出来。 老规则 —— 先删除再创建,...
  • VBA删除某些文件夹下的所有文件

    千次阅读 2020-11-29 16:04:58
    '这个vba代码是后处理的代码,加载阶段未接触上进行修正 Dim i, jj, kk As Integer Dim wb As Workbook For i = 1 To 10 str = Dir("C:\Users\DELL\Desktop\保存\*.*") 'str就是带有.xlsx的文件名 If str = "" T...
  • vba操作word删除某些页面

    千次阅读 2016-02-05 15:52:12
    突然要进行word的vba操作,真心不适应,可以删除word的页面 bug:每次删除的时候都是重新计算页码,所以说需要计算好每次删除后的页面页码Sub kk1206190933() Dim wNum As Integer Dim wPag As Integer 'Dim arr...
  • Sub test() Dim begin As Integer Dim endValue As Integer Dim jg As Integer begin = 3 '开始行 ... jg = 1 '间隔 '千万不要以为是2,因为当第3行被删除后,第5行已经变成了第4行 Dim i As Int
  • 如何用VBA批量删除文件

    千次阅读 2018-06-09 23:36:07
    Sub 批量删除文件() mypath = ThisWorkbook.Path f = Dir(mypath &amp; "\*.xlsx") '查找当前路径下符合条件的文件名 While f &lt;&gt; "" '一直到F找不到合条件的就结束循环 ...
  • 在Excel表中通过VBA编码,制做了一个小程序,功能是"修改指定文件夹包括子文件中文件后缀名".说明:Excel表的sheel1列A中存放了后缀名,不能删除。否则窗口中的下拉框没有值。该程序的特点是用VBA调用外部批处理代码...
  • Excel VBA删除行、列或单元格

    千次阅读 2020-07-21 01:59:16
    删除指定的对象。 expression.Delete 表达式 必需。该表达式返回上述对象之一。 应用于 Range 对象的 Delete 方法。 删除指定的对象。 expression.Delete(Shift) 表达式 必需。该表达式返回上述对象之一。...
  • VBA-删除工作表中的空行

    千次阅读 2020-02-24 22:37:19
    删除工作表中的空行 若在表格中存在一部分空行,可以使用如下代码进行剔除; '未知数据的首行末行数 Sub 删除空行() Dim a As Integer Dim b As Integer Dim i As Integer a = Sheet1.UsedRange.Row b = a + ...
  • 一键删除特定名称的工作表
  • Excel VBA 删除 表格中的图片

    千次阅读 2021-01-19 09:18:50
    那么,就需要其中的文字、文本框、图片进行删除 Sub DeletePic() Dim p As Shape For Each p In Sheet1.Shapes If p.Type = 13 Then p.Delete End If Next End Sub 代码中的type可以参考如下, 在删除图片...
  • vba 用代码删除控件 介绍 (Introduction) 在回答VB经典区域中a recent question in the VB classic zone, I wrote some VB code in the (Office) VBA environment, rather than fire up my older PC. I didn't post ...
  • VBA 删除数组某元素的方法多种

    千次阅读 2020-01-09 17:31:09
    Sub test_arr3() arr1 = Array(1, 2, 3, 999, 1, 3, 5) For Each I In arr1 If I = "999" Then I = "" Else Debug.Print I End If Next dengbu.Print End Sub ...
  • 试了很多代码都不行...以下是还能想起来的一些试过的(B8:S200是需要清空的区域) <code>Worksheets("sheet1").Range("B8:S200").Clear Worksheets("sheet1"... </p>
  • 此cad插件vba格式,可批量删除dwg的指定图层,需批量删除图层的dwg与指定的图层txt放同一文件夹内,运行插件选中该文件夹即可批量删除指定图层
  • 可以根据文件类型批量删除指定类型的文件,可以清理项目下不必要的文件,如:BIN,OBJ,SVN等等的文件
  • Excel的多行或者多列删除
  • copy不指定位置默认新建一个工作簿Activeworkbook.SaveAs filename:=”d\data\”& sht.name & ”.xlsx” //文件路径Activeworkbook.close//关闭Nextend sub 结果如下图: 对数据分析或者vba有兴趣的朋友可以...
  • 如题,预计打算把黄色标示的行全部一齐删除。 如果数据比较大达到几十万行的话,循环寻找A列为空则比较低效。 若用SpecialCells函数把空白单元格全部找到而且选中,则不需要循环,速度较快。 Sub Test () dim blk, ...
  • Selection.Range.ListFormat.RemoveNumbers
  • 很多人忙于工作,疲于工作,烦于工作,不知道VBA是一道独特的风景,需要你的欣赏,需要你用心去开发。在我20多年的VBA实践中,越来越感到此处风景独到,此处风景独好,希望大家利用VBA,开垦VBA,让代码为你服务。我...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,186
精华内容 1,674
关键字:

vba如何将删除指定