Excel VBA 问题
作者:未知侠名时间:2022-11-19 08:44:08
密码知道么?你加个
ActiveSheet.Unprotect Password:=
最后再保护就是
ActiveSheet.Protect Password:= 同时按alt和f11进入宏界面,点菜单的插入,用户窗体(名字叫userform1)。
插入一标签(名字叫label1)。
双击那个窗体,粘贴如下代码:
private sub userform_activate()
application.wait now + timevalue("00:00:02")
label1.caption = ""
end sub
private sub userform_initialize()
label1.caption = range("e3")
end sub
粗体改为你实际的单元格。运行窗体,满足你要求。
没必要两个甚至三个循环,一个就可以了。使用find函数
Sub t1()
On Error Resume Next
For Each a In Range("A2:A1014")
If Range("b2:b752").Find(a.Value, LookIn:=xlValues) Is Nothing Then Cells(a.Row, 3) = "NOEXIST" Else Cells(a.Row, 3) = "EXIST"
Next
End Sub
更简单的方法,直接使用工作表函数countif,代码如下:
Sub t1()
On Error Resume Next
For Each a In Range("A2:A1014")
If WorksheetFunction.CountIf(Range("B2:B752"), a) = 0 Then Cells(a.Row, 3) = "NOEXIST" Else Cells(a.Row, 3) = "EXIST"
Next
End Sub
a.row可以直接产生对应a的行号,没有必要另外弄个x变量还循环,就算使用x变量来表示行号,也可以直接在a循环内加一个x=x+1 这样就行了。
希望能解决您的问题。
ActiveSheet.Unprotect Password:=
最后再保护就是
ActiveSheet.Protect Password:= 同时按alt和f11进入宏界面,点菜单的插入,用户窗体(名字叫userform1)。
插入一标签(名字叫label1)。
双击那个窗体,粘贴如下代码:
private sub userform_activate()
application.wait now + timevalue("00:00:02")
label1.caption = ""
end sub
private sub userform_initialize()
label1.caption = range("e3")
end sub
粗体改为你实际的单元格。运行窗体,满足你要求。
没必要两个甚至三个循环,一个就可以了。使用find函数
Sub t1()
On Error Resume Next
For Each a In Range("A2:A1014")
If Range("b2:b752").Find(a.Value, LookIn:=xlValues) Is Nothing Then Cells(a.Row, 3) = "NOEXIST" Else Cells(a.Row, 3) = "EXIST"
Next
End Sub
更简单的方法,直接使用工作表函数countif,代码如下:
Sub t1()
On Error Resume Next
For Each a In Range("A2:A1014")
If WorksheetFunction.CountIf(Range("B2:B752"), a) = 0 Then Cells(a.Row, 3) = "NOEXIST" Else Cells(a.Row, 3) = "EXIST"
Next
End Sub
a.row可以直接产生对应a的行号,没有必要另外弄个x变量还循环,就算使用x变量来表示行号,也可以直接在a循环内加一个x=x+1 这样就行了。
希望能解决您的问题。
- 站长提醒大家:以上内容,未识真伪,仅供参考。理性上网,以免过度。谨慎广告,危及钱财。
版权声明:本信息由系统自动搜集网络信息,本站尊重网络信息的版权问题,本站所有内容仅供学习使用,版权归原作者所有,若有来源错误或者侵犯您的合法权益,您可通过邮箱与我们取得联系,我们将及时进行处理。