作者:乔山办公网日期:
返回目录:excel表格制作
If ActiveSheet.Protect Then
ActiveSheet.Unprotect ("123")
End If
加一段这个即可!
Range(A7:G7)是要删除的区域;若行号以变量Row表示,则写成Range(A&Row&:G&Row 。xlUp表示删除指定区域后下方单元知格上移。给你介绍一个获取vba编码的一个小方法,就是采用excel的录制宏的功能。依次选择 工具道-宏-录制新宏,这版个时候就出现一个小图标,不要关闭他,在excel的sheet上面进行你想要进行的操作,操作完毕后,点击那个小图标上的停止录制按钮。然后再依次选择工具-宏-宏-选择刚才的权宏的名字,然后点击编辑按钮,就可以看到你刚才所做操作的所有的vba代码,你可以对你的程序进行参考。
通过宏删知除道SHEET2中信息在SHEET1中所在版的行
代码权如下:
Sub test()
Dim rn2, rn1 As Range
Application.ScreenUpdating = False
For Each rn2 In Sheet2.Range("a2:a1000")
For Each rn1 In Sheet1.Range("a2:a1000")
If rn1 = rn2 Then
rn1.EntireRow.Delete
End If
Next
Next
Application.ScreenUpdating = True
End Sub
大概思路:
1.首先在宏设置中zd勾选“信任对VBA工程对象模型的访问”
2.代码最好放到一个新建的工作簿中,用专代码打开要删除宏的文件,比如名为A.xlsm。
3.访问A.xlsm的VBProject对象,如果工程有密码,可以用Sendkey方法发送密码。
4.遍历VBComponents集合,在每个子集合中查找“宏1”的代码,找到后删除它。
若宏1,宏2,宏3.......在不同的属模块,比较简单直接删除模块即可。若在同一个模块稍麻烦些,需要查找“宏1”的首尾行号。
相关代码细节可以再百度。