【问题标题】:Using Offset Properly正确使用偏移量
【发布时间】:2017-12-26 05:56:23
【问题描述】:

我有这个代码:

If Not (Application.Intersect(Target, Range("E2:F5000")) Is Nothing) Then
       If StrComp("pp voice", Target.Value, vbTextCompare) = 0 Then
          Target.Value = "PP Voice"
         'disable app activation cell
       End If
End If

该代码很好,可以执行应有的操作。我还需要它做的是禁用 M 列同一行中的单元格。比如禁用它并将其填充为灰色或其他东西。

问候, 本。

【问题讨论】:

  • “禁用”是什么意思?锁定牢房?
  • 是的,锁定会很好,因为工作表受到保护。
  • 如果StrComp() = 0,您是否要锁定Target 行的M 列中的单元格?
  • 是的。该 IF 语句只是清理人们糟糕的打字,但我还需要 M 列中的单元格锁定某些值。 (StrComp 中的那些)
  • 我在看类似 Target.Offset(Target.Row, 8).Locked = True 的东西,但这似乎没有用。

标签: excel offset


【解决方案1】:

没关系,解决了。解锁整个工作表,然后重新锁定即可解决。

   If StrComp("pp voice", Target.Value, vbTextCompare) = 0 Then
     Target.Value = "PP Voice"
     ThisWorkbook.Sheets("Sales Entry").Unprotect "password!"
     Target.Offset(0, 8).Locked = True
     ThisWorkbook.Sheets("Sales Entry").Protect "password!"
   End If

感谢您的意见!

【讨论】:

  • 我敢打赌,这是因为您将其锁定,因此无法对牢房做任何事情。不要在If 语句中进行解锁,而是尝试将其添加到子程序的开头,然后将其锁定在末尾。这也可能会加快速度,因为它不是每次都锁定/解锁。
  • 这正是我所做的,因为其中大约有 25 个 IF 语句,哈哈。干杯
猜你喜欢
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多