Excel宏:如何编写此“如果用户名[示例代码:Environ(“用户名”)]等于此范围内的值之一[示例:我从工作簿创建的范围:范围(“Authorized_Users”)]然后。 ..“ 谢谢!
问问题
1103 次
2 回答
1
基本上你必须完全按照你写的去做。您的解决方案目前缺少两件事:
- 一种检索用户名的方法。
- 一种在范围内搜索的方法。
这两项任务都不应该那么难,因为 excel 已经提供了一些很棒的功能来做到这一点。
对于第二点,您必须创建一个搜索范围的函数。find in range 函数看起来像这样:
Function ExistsInRange(range As range, name As String) As Boolean
ExistsInRange = False
Dim resultRange As range
If Trim(name) <> "" Then
With range
Set resultRange = .Find(What:=name, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not resultRange Is Nothing Then
ExistsInRange = True
End If
End With
End If
End Function
如果要在 B 列中的所有行中搜索用户名“jeff”,调用将如下所示:
If ExistsInRange( sheet.Range("B:B"), "jeff") Then
于 2012-07-27T09:44:05.787 回答
1
您的规范非常接近所需的代码...
If Not IsError(Application.Match(Environ("Username"), [Authorized_Users], 0)) Then
于 2012-07-27T10:21:27.673 回答