2016-10-05 3 views
1

私のデータには月を含むセルA1があります。特定の月のロック行

A2:Z999:従業員の詳細。 列P:参加日。

P> A1の場合、その従業員の行は古いデータであるため、その行をロックする必要があります。日付のない行、または999以降の空の行のみが空である必要があります。

助けてください!今すぐ下の私のコードはすべてをロックします。

Dim DestSh As Worksheet 
Dim lastrow As Long 


Set DestSh = Sheets("Consultant & Teacher") 

With DestSh 
    If Application.WorksheetFunction.CountA(.Cells) <> 0 Then 
     lastrow = .Columns("A:z").Find(What:="*", _ 
         After:=.Range("A1"), _ 
         Lookat:=xlPart, _ 
         LookIn:=xlFormulas, _ 
         SearchOrder:=xlByRows, _ 
         SearchDirection:=xlPrevious, _ 
         MatchCase:=False).Row 
    Else 
     MsgBox "Insufficient rows" 

    End If 

    If Range("A1").Value = "April" Then 
    .Unprotect Password:="MyPassword" 
    .Cells.Locked = False 
    .Range("A2:Z" & lastrow).Locked = True 

答えて

0

私は、既存のコードで実現しようとしていたものをそれほどわからないんだけど、純粋にあなたが説明した内容に基づいて、私は、これはトリックを行うべきだと思う:あなたの応答のための

Dim DestSh As Worksheet 
Dim lastrow As Long 
Dim i As Integer 

Set DestSh = Sheets("Consultant & Teacher") 

With DestSh 
    'finds the last row with data on A column 
    lastrow = Range("A65536").End(xlUp).Row 

    'parse all rows 
    For i = 2 To lastrow 
     'if your conditions are met 
     If Month(.Cells(i, 16)) > Month(.Cells(1, 1)) Then 
      .Range("A" & i).EntireRow.Cells.Locked = True 'lock the row 
     End If 
    Next i 
End With 
+0

感謝。私のために働かない。私はエラーはありませんが、行をロックしません。 –

関連する問題