Интересно, может ли кто-нибудь помочь мне, пожалуйста.
Я использую приведенный ниже код, который среди ряда выполняемых действий автоматически заполняет столбец «А» датой, а столбец «КАК» текстовым значением «Нет» при создании новой записи в электронной таблице Excel.
Option Explicit
Public preValue As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range, res As Variant
Dim rCell As Range
Dim Rng1 As Range
Dim Rng2 As Range
Dim Rng3 As Range
Application.EnableCancelKey = xlDisabled
'Sheets("Input").Protect "handsoff", UserInterFaceOnly:=True, AllowFiltering:=True, AllowFormattingColumns:=True
If Target.Column = 3 Then
If Target = "No" Then MsgBox "Please remember to make the same change to all rows for " & Target.Offset(0, -1).Value & " and delete any future forecasts"
End If
If Target.Cells.Count > 1 Then Exit Sub
On Error Resume Next
If Not Intersect(Target, Range("B5:AD400", "AF5:AQ400")) Is Nothing Then
If Target.Value <> preValue And Target.Value <> "" Then
Application.EnableEvents = False
With Rows(Target.Row)
.Range("A1").Value = Date
.Range("AS1").Value = "No"
End With
Application.EnableEvents = True
Target.Interior.ColorIndex = 35
End If
End If
On Error GoTo 0
If Target.Column = 45 Then
If Target.Value = "Yes" Then
Set Rng1 = Application.Union(Cells(Target.Row, "B").Resize(, 19), Cells(Target.Row, "R"))
Rng1.Interior.ColorIndex = xlNone
Set Rng2 = Application.Union(Cells(Target.Row, "S").Resize(, 12), Cells(Target.Row, "AD"))
Rng2.Interior.ColorIndex = 37
Set Rng3 = Application.Union(Cells(Target.Row, "AF").Resize(, 12), Cells(Target.Row, "AQ"))
Rng3.Interior.ColorIndex = 42
End If
End If
If Not Intersect(Target, Range("J7:J400")) Is Nothing Then
Set Cell = Worksheets("Lists").Range("B2:C23")
res = Application.VLookup(Target, Cell, 2, False)
If IsError(res) Then
Range("K" & Target.Row).Value = ""
Else
Range("K" & Target.Row).Value = res
End If
End If
End Sub
Что я хотел бы сделать, если это вообще возможно, так это то, что когда дата вставляется в столбец «A», я хотел бы вставить текстовое значение «Выбрать» в той же строке в столбце «C». Это значение берется из первого значения, которое у меня есть в раскрывающемся меню, настроенном на листе под названием «Списки» с именованным диапазоном «RDStaff».
Может ли кто-нибудь сказать мне, пожалуйста, как я могу изменить функциональность, чтобы, как только столбец «A» заполнялся датой, первое значение из моего списка, т.е. «Выбрать», автоматически заполнялось в столбце «C»?
Большое спасибо и с уважением
Крис
Rows(Target.Row).Range("C1").Value = "Select"- Разве это не все, что вам нужно? - person mattboy   schedule 23.12.2012