一张纸中的2个宏定位相同的单元格

时间:2014-11-27 14:28:16

标签: excel excel-vba vba

这可能是一个真正的新手'问题,但说实话,我是宏的新手,需要一些帮助。

如果单元格AB10显示" 已批准",我会编写一个宏来自动向单元格AA10添加日期/时间戳。如果AB10 & AC10 空白,此宏还会自动删除AA10的内容。

我现在还需要在单元格AA10显示已批准并且已在AB10中自动填充日期/时间并且一旦有值(来自预定的下拉列表)时整个行锁定在单元格AC10中。

这是我现有的宏:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
  With Target 
     If .Count > 1 Then Exit Sub 
         If Not Intersect(Range("AA10:AA10000"), .Cells) Is Nothing Then 
            Application.EnableEvents = False 
            If IsEmpty(.Value) Then 
               .Offset(0, 1).ClearContents 
               .Offset(0, 2).ClearContents 
            Else 
               With .Offset(0, 1) 
                 .NumberFormat = "dd mmm yyyy hh:mm" 
                 .Value = Now 
               End With 
            End If 
         Application.EnableEvents = True 
       End If 
   End With 
 End Sub 

有人可以告诉我如何根据上面的要求添加必要的代码来锁定行吗?我尝试添加的所有内容都会禁用上面的宏。

真诚地感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:0)

只需对您的代码进行少量修改即可。将以下内容粘贴到工作表的代码模块中:

Option Explicit

Private Const strPassword As String = "password"

Private Sub Worksheet_Activate()

    Me.Protect Password:=strPassword, userinterfaceonly:=True

End Sub

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    With Target
        If .Count > 1 Then Exit Sub
        If Not Intersect(Range("AA10:AA10000"), .Cells) Is Nothing Then
            Application.EnableEvents = False
            If IsEmpty(.Value) Then
                .Offset(0, 1).ClearContents
                .Offset(0, 2).ClearContents
                '.EntireRow.Locked = False
            Else
                With .Offset(0, 1)
                    .NumberFormat = "dd mmm yyyy hh:mm"
                    .Value = Now
                End With
                .EntireRow.Locked = True
                '.Locked = False
            End If
            Application.EnableEvents = True
        End If
    End With
End Sub

以上假设所有需要编辑的单元格都以解锁状态启动(注意:Excel的默认设置已被锁定)。根据您的初始代码,将输入时间戳,无论在AA列中输入什么内容,行都将被锁定。如果您希望用户能够随后清除AA列的内容以删除时间戳并解锁该行以进行编辑,则恢复代码中的两个已清除行。

希望这有帮助。

相关问题