OP, ваш код может быть реструктурирован, как показано ниже. Я также использовал некоторые переменные сокращения, чтобы сделать вещи проще. Ваши имена переменных в идеале должны быть краткими (легко читаемыми и короткими для ввода). Читаемость имеет большое значение для устранения неполадок.
Дайте мне знать, как только вы увидите это, чтобы я мог удалить
Sub PNum()
Dim ws47 As Worksheet: Set ws47 = ThisWorkbook.Sheets("IW47")
Dim ws38 As Worksheet: Set ws38 = ThisWorkbook.Sheets("IW38")
Dim Arr As Range: Set Arr = ws38.Range("A:K")
Dim LR As Long, MyCell As Range, Priority As String
LR = ws47.Range("E" & ws47.Rows.Count).End(xlUp).Row
For Each MyCell In ws47.Range("R2:R" & LR)
If IsEmpty(MyCell.Offset(-13)) Then Exit Sub
On Error Resume Next
Priority = WorksheetFunction.VLookup(MyCell.Offset(, -13), Arr, 11, 0)
If Err = 0 Then
MyCell = Priority
Else
Err.Clear
End If
On Error GoTo 0
Next MyCell
End Sub
Когда DataList с привязкой к данным, AutoPostBack еще не был обработан, т.е. значения в событии ItemCreated являются все еще исходными значениями.
Необходимо обработать событие SelectedIndexChange выпадающего управления.
Относительно Вашего 2-го вопроса:
Я предлагаю, чтобы Вы удалили AutoPostBack из выпадающего, добавили кнопку "Update" и обновили данные в событии нажатия кнопки.
Кнопка может содержать значения Команды и CommandArgument, таким образом, легко связаться с записью базы данных.
некоторый MSDN связывается с примерами C# на пузырении
http://msdn.microsoft.com/en-us/library/system.web.ui.control.onbubbleevent.aspx
http://msdn.microsoft.com/en-us/library/aa719644 (По сравнению с 71) .aspx
http://msdn.microsoft.com/en-us/library/aa720044 (По сравнению с 71) .aspx