vba如何选择列表框中的数据并删除,同时删除对应表格中的数据

vba如何选择列表框中的数据并删除,同时删除对应表格中的数据,第1张

你说的好模糊啊,对应表格的数据在哪一列,最好有做参考

Private Sub CommandButton1_Click() '给列表框填入内容

ListBox1Clear

ListBox1AddItem "wgbb"

ListBox1AddItem "cxcd"

ListBox1AddItem "w666"

ListBox1AddItem "dddd"

End Sub

Private Sub CommandButton2_Click()

'循环A列找到和选择的列表框内容相同的删除

i = 1

Do While Cells(i, 1) <> ""

If Cells(i, 1) = ListBox1List(ListBox1ListIndex) Then Cells(i, 1) = ""

i = i + 1

Loop

ListBox1RemoveItem (ListBox1ListIndex) '删除选择的列表框内容

End Sub

网友SXB8113的方法简单可可行。但你非要用VBA的话可用如下代码:

Sub

ABC()

For

i

=

Sheet1UsedRangeRowsCount

To

1

Step

-1

If

Rows(i)Hidden

=

True

Then

Rows(i)Delete

Next

i

End

Sub

筛选是将不合条件的行隐藏起来,代码是用循环检查隐藏的行并删除。如果数据量大,循环代码前要先关闭屏幕刷新:ApplicationScreenUpdating

=

False,不然运行慢

Rows(i & ":" & l)Delete Shift:=xlUp

也可以写循环

Sub aa()

Dim i, l, r As Integer

i = 1

l = 3

For r = i To l

Rows(r)Delete Shift:=xlUp

Next

End Sub

首先我们打开一个工作样表作为例子。

excel中使用vba清除工作表内容

使用alt+f11组合快捷键进入vbe编辑器,插入一个新的模块,并在模块中输入以下代码:

Option Explicit

Sub ddt()

'ActiveCellCurrentRegionSelect

'Range(ActiveCellEnd(xlUp), ActiveCellEnd(xlDown))Select

Range("A1")ClearContents '清除活动工作表上单元格A1中的内容

SelectionClearContents '清除选定区域内容

Range("A1:D4")Clear

End Sub

excel中使用vba清除工作表内容

前两句代码是选择有数据内容的单元格,我做了注释标签,在代码中不运行。这里我先做一个简单的实例。使用range函数并选择了a1单元格,然后使用clearcontents命令来清除掉a1单元格中的内容。

excel中使用vba清除工作表内容

第二行代码是指选取单元格区域后运行宏,则清除掉所选区域的内容。

excel中使用vba清除工作表内容

最后一行代码更明晰,首先设定单元格区域为a1:d4,然后使用clear命令清除单元格包括格式在内的所有数据,这也是clear和clearcontents的区别。

excel中使用vba清除工作表内容

实际 *** 作一下,我现在把单元格中的字体修改为华文琥珀,并将字号设置为72,这时候单元格格式发生了变化,我使用clearcontents对单元格进行清除内容并不会更改单元格的格式。

excel中使用vba清除工作表内容

而使用clear命令清除内容,单元格格式会恢复成默认值。

excel中使用vba清除工作表内容

1,用VBA删除A1:H18内的内容:

Sub

清除内容()

Range("A1:H18")Clear

End

Sub

2,删除整行内容:

Range("A1")EntireRowClear

3,删除整列内容:

Range("A1")EntireColumnClear

4,删除活动工作表的所有内容:

ActiveSheetCellsClear

用字典可以轻松快捷地实现去重的 *** 作,代码如下:

Sub main()

Set dic = CreateObject("scriptingdictionary") '创建字典对象,并把字典对象赋给变量dic;这是最常用的一句代码,也就是所谓的“后期绑定”

For i = Range("B65536")End(3)Row To 1 Step -1 '从B列的最后一行到第一行依次递减,如果是从第一行到最后一行递增,则会因为删除行而跳过很多行,达不到去重效果

If dicexists(Cells(i, "B")Value) Then '如果B列中的数据已经在字典中了(也就是重复了)

Rows(i)Delete '就删除这一行

Else

dic(Cells(i, "B")Value) = "" '否则就把B列的数据放入字典中

End If

Next i

End Sub

以上就是关于vba如何选择列表框中的数据并删除,同时删除对应表格中的数据全部的内容,包括:vba如何选择列表框中的数据并删除,同时删除对应表格中的数据、在Excel2003中如何利用VBA写的宏代码把没有筛选出来的数据执行删除行 *** 作、vba删除怎么删除连续的多行呢,加入开始行变量是i,结束变量是l,我用rows(i+":"+l).delete提示错误等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10201697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存